【发布时间】:2015-02-09 04:07:13
【问题描述】:
我有一个复杂的 javascript 函数,它可能需要 1 秒或几分钟才能发送答案。所以我创建了一个正在工作的 Worker,我在 Swift 中从我的 UIWebView 调用这个函数(stringByEvaluatingJavaScriptFromString)。我只等待 5 秒(在相同的 Javascript 中创建超时),之后我终止了工作程序(job.terminate()),然后我用其他参数启动了一个不同的工作程序(更简单),显示只需要 1 秒钟答案。问题是,即使在终止信号之后,第一个工作人员似乎也在后台运行。如图所示,WebCore: Worker 占用了大量 CPU。我怎样才能终止工人?
job = new Worker("main.js");
var t = setTimeout(function(){
stop();
logNode.innerText = 'NULL';
},5000);
function stop() {
job.terminate();
job = undefined;
}
(main.js):
importScripts('dist/algorithm.js');
var lp;
self.addEventListener('message', function(e) {
...
...
【问题讨论】:
标签: javascript ios swift web-worker