标签: textdecoder

JavaScript:SharedArrayBuffer 上的 TextDecoder

我在 SharedArrayBuffer 上遇到解码()问题。

代码:

  var sharedArrayBuffer = new SharedArrayBuffer(2);
  var uint8Array = new Uint8Array(sharedArrayBuffer);
  uint8Array[0] = 20;
  var decoder = new TextDecoder();
  decoder.decode(uint8Array);
Run Code Online (Sandbox Code Playgroud)

错误:

Failed to execute 'decode' on 'TextDecoder': The provided ArrayBufferView value must not be shared.
Run Code Online (Sandbox Code Playgroud)

这里有一个规范警告开发人员有关此类内存的竞争条件。我可以以某种方式强制解码吗?我确信解码期间数据不会改变。或者有解决方法吗?

原因: 我想创建 Uint8Array 的单个副本并将其传递,而不通过 postmessage 复制(如果未指定可传输,则默认复制)到多个(> 3)IFrame(带有沙箱标记)。也许还有其他可能的解决方案?

javascript postmessage uint8array sharedarraybuffer textdecoder

6
推荐指数
1
解决办法
1066
查看次数