要求#1:整个项目的存储空间不应超过1 MB。
要求2:应支持Internet Explorer 10
我已经尝试将DOM元素传递给Webworker。这带来了以下错误消息:
DOMException:无法在'Worker'上执行'postMessage':无法克隆HTMLDivElement对象。
var worker = new Worker( 'worker.js' );
worker.postMessage( {
'chart' : document.querySelector('#chart').cloneNode(true)
} );
GitHub用户chrisahardie已经......
一个关于概念的小证明,展示了如何在Web worker中生成d3 SVG图表并将其传递回主UI线程以注入到网页中。
他使用Browserify将jsdom集成到浏览器中。
问题:
该脚本几乎有5 MB,这对应用程序的内存要求太多了。
所以我的问题:
有没有人有解决问题的经验,或者知道如何解决问题并满足要求?
Web Workers无权访问以下JavaScript对象:窗口对象,文档对象和父对象。因此,我们在这方面所能做的就是构建可用于快速创建DOM的东西。工作人员可以例如处理数据集并执行所有繁重的计算,然后将结果作为一组数组传回。更多细节,你可以检查this article和this sample