我正在尝试使用 three.js 模拟大约10,000个对象。由于物体在移动,我需要计算每个瞬间的轨迹。为此,我决定使用工人。以下是我的代码(为简单起见而截断)
主文件
var Position;
var worker = new Worker('scripts/worker.js');
$(function(){
initSatData();
worker.addEventListener('message', function(e) {
Position = e.data;
plot(); // plots the objects
}, false);
})
worker.js
importScripts('scriptUsed.js');
self.addEventListener('message', function(e) {
var Position =[];
var Data = e.data;
for (var i = 0; i <= Data.length-1; i++) {
// Does calculation
Position .push(data_obtained);
}
self.postMessage({
type: 'results',
data: Position
})
})
然后在我调用这个函数
function callWorker()
{
worker.postMessage(Data);
}
function animate()
{
requestAnimationFrame( animate );
render();
callWorker();
}
它会运行一段时间然后崩溃。出现以下错误
我认为我犯的是一个简单的逻辑错误,因为我是第一次使用工人。