Ajoutant ArrayBuffers

Quelle est la meilleure façon d'ajout/combinant ArrayBuffers?

Je suis de la réception et de l'analyse des paquets réseau avec une variété de structures de données. Les messages entrants sont lus dans ArrayBuffers. Si partielle d'un paquet arrive j'ai besoin de la stocker et attendez le message suivant avant de re-tenter de l'analyser.

Actuellement, je suis en train de faire quelque chose comme ceci:

function appendBuffer( buffer1, buffer2 ) {
  var tmp = new Uint8Array( buffer1.byteLength + buffer2.byteLength );
  tmp.set( new Uint8Array( buffer1 ), 0 );
  tmp.set( new Uint8Array( buffer2 ), buffer1.byteLength );
  return tmp.buffer;
}

Évidemment, vous ne pouvez pas l'obtenir autour de les avoir à créer un nouveau tampon de ArrayBuffers sont d'une longueur fixe, mais est-il nécessaire d'initialiser les tableaux typés? À l'arrivée, je veux juste être capable de traiter les tampons, comme les tampons, les types et les structures ne sont pas préoccupants.

  • double possible de Tableaux Typés dans Gecko 2: Float32Array de concaténation et d'extension
  • la solution à la question ci-dessus vous propose mon approche actuelle qui est de combiner tableaux typés dans un nouveau tampon. Ce qui est bien quand vous voulez traiter avec des tableaux typés. Je veux les éviter complètement. Ma question est de savoir si c'est possible.
  • eh bien, vous n'avez .slice avec ArrayBuffer, pas beaucoup peut être fait avec qui. Ensuite, vous avez .append avec BlobBuilder mais ça va être beaucoup plus compliqué que ce que vous faites déjà. Est-il un vrai problème avec votre approche?
  • mon problème est le rendement, même si je n'ai pas atteint ce point est de tester encore. Cela semblait juste comme un moyen détourné de le faire. Encore à m'habituer à JS! Merci quand même.
InformationsquelleAutor user1421750 | 2012-05-28