【发布时间】:2013-09-08 01:35:00
【问题描述】:
我有一个网络工作者用来轮询信息。
下面是启动和停止 web worker 的代码:
var eftWorker = undefined;
that.StartWorker = function () {
if (eftWorker === undefined) {
eftWorker = new Worker('../scripts/ETEL.EftWorker.js');
eftWorker.addEventListener('message', function(e) {
EftWorkerResponseHandler(e.data);
}, false);
eftWorker.addEventListener('error', function(e) {
EftWorkerErrorResponseHandler(e);
}, false);
}
eftWorker.postMessage({ cmd: eftCmdStart });
};
that.StopWorker = function () {
if (eftWorker !== undefined) {
eftWorker.postMessage({ cmd: eftCmdStop });
eftWorker.terminate();
}
eftWorker = undefined;
};
当我在工作人员上调用终止时,因为工作人员正在轮询,似乎有未处理的消息后事件积压。
在初始化包含视图和终止网络工作人员时,我将网络工作人员设置为“未定义”。我相信由于后者,那些未处理的事件显示为 ABORT_ERRORs。 是否有一个中间状态可以用来测试 Web Worker 的存在,以便我可以让它处理未完成的事件,从而避免错误?
或者有什么不同的方法可以用来避免调用终止后的错误累积?
【问题讨论】:
标签: javascript jquery state web-worker terminate