Javascript Webworker 如何将json 信息放入数组缓冲区

Javascript Webworker how to put json information into array buffer

我有数以千计的小字符串需要从网络工作者传回主页,每个字符串都是这样的:

"this string needs to be sent"

我怎样才能将它包含到数组缓冲区中以提高传输速度?我了解如何将数字与数组缓冲区一起使用,但如何使用字符串?我正在寻找这样的东西:

var strings = ["str1","str2","str3",...]
for (var i = 0; i < strings.length; i++) {
    arraybuffer[i] = //Whatever operation works to add strings[i]
}

值得衡量和比较各种技术的性能。工作人员可以使用 SharedArrayBuffer if supported in your target browsers (not exemplified below), otherwise Transferrable objects can be used with postMessage(). TextEncoder 从字符串创建 ArrayBuffers。

单个字符串可以在编码时传输:

const encoder = new TextEncoder()
strings.forEach(s => {
  const encoded = encoder.encode(s)
  postMessage(encoded, [encoded.buffer])
})

可以批量传输字符串数组:

const encoded = strings.map(s => encoder.encode(s))
postMessage(encoded, encoded.map(bytes => bytes.buffer))