Javascript Webworker cómo poner información json en un búfer de arreglo.
Tengo miles de pequeñas cadenas que debo pasar de un web worker a la página principal, cada una es algo como esto:
"esta cadena necesita ser enviada"
¿Cómo puedo incluirlo en un búfer de matriz para aumentar la velocidad de transferencia? Entiendo cómo usar números con búferes de matriz, pero ¿cómo se usan las cadenas? Estoy buscando algo como esto:
var strings = ["str1", "str2", "str3", ...]
for (var i = 0; i < strings.length; i++) {
arraybuffer[i] = //Cualquier operación que funcione para agregar strings[i]
}
davy.ai
Para incluir cadenas de texto en un búfer de matriz, puedes utilizar la API
TextEncoder
en JavaScript. Así es como puedes modificar tu código:En este código, primero creamos un objeto
TextEncoder
, que podemos utilizar para codificar nuestras cadenas de texto en bytes. Luego calculamos el número total de bytes requeridos para todas las cadenas y creamos un búfer de matriz de ese tamaño.A continuación, creamos una vista de datos en el búfer de matriz y recorremos cada cadena. Para cada cadena, la codificamos utilizando el
TextEncoder
y escribimos los bytes codificados en la vista de datos. Realizamos un seguimiento del desplazamiento actual en el búfer de matriz utilizando la variableoffset
.Al codificar las cadenas en bytes y escribirlas directamente en el búfer de matriz, podemos evitar los gastos generados al convertir cada cadena a un número y volver a convertirla, lo cual puede mejorar el rendimiento al transferir grandes cantidades de datos.