要求#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 已完成...
关于概念的小证明,显示了如何在导航图中生成d3 SVG图表 网络工作者,并将其传递回要插入的主UI线程 一个网页。
他使用Browserify将jsdom集成到浏览器中。
问题:
该脚本几乎有5 MB,这对于应用程序来说是过多的内存需求。
所以我的问题:
有人有解决问题的经验吗,或者对如何解决问题和满足要求有任何想法?
答案 0 :(得分:0)
Web Workers无法访问以下JavaScript对象:窗口对象,文档对象和父对象。因此,我们在这方面所能做的就是构建可用于快速创建DOM的东西。工作者可以例如处理数据集并进行所有繁重的计算,然后将结果作为一组数组传回。更多详细信息,您可以检查this article和this sample