javascript网络工作者发布消息



我的脚本正在进行紧张的处理,所以为了不阻塞UI并避免浏览器处理上限(chrome上为12.5),我尝试了web worker

问题是对象太大并且包含数组所以邮件不会通过投掷来传递"无法在"Worker"上执行"postMessage":无法克隆对象">

所以我考虑将其字符串化,对象并没有完全传输,因为它包含数组,以及字符串化为"[]"的数组

所以我考虑将数组转换为字符串/对象,以便能够将它们传输回来,但由于对象很大,我在堆栈上的内存不足(即使使用第三方插件)

那么,在这种情况下,我缺少的东西会有帮助吗?

  • 在没有阻止ui并允许我报告进度;将解决这个
  • 任何将对象转移到web工作者的方法对象和数组;会解决这个问题

问题的调试图片

未字符串化的子对象

如果执行以下操作,是否正确地重新创建了对象?

在您的主线程上:

var worker = new Worker('myworkerfile.js')
worker.postMessage(JSON.stringify(myclusters))

在工作线程上:

onmessage =  function(e) {
var myclusters = JSON.parse(e.data);
console.log(myclusters)
}

最新更新