Javascript - 等待 Web worker 完成
Javascript - Wait for web worker to finish?
我正在javascript中实现主题建模的LDA算法作为项目的一部分。单击按钮后,将调用执行 LDA 的函数。但是,由于这是一项非常繁重的任务,因此在调用函数时,浏览器曾经挂起大约 15 秒(在处理过程中,甚至加载动画 gif 也无法正常工作)。
所以我以 Web 工作者的身份实现了这个功能。这解决了挂起问题,但现在加载动画在几秒钟内消失,而结果会在大约 12-14 秒后显示。
有什么方法可以让加载器在处理过程中动画化?我的意思是在加载动画消失之前等待 Web worker 完成计算。
脚本被异步调用,加载器附加到 jQuery 的 ajax 事件,作为
$('#spinner').bind("ajaxSend", function() {
$(this).show();
}).bind("ajaxComplete", function() {
$(this).hide();
});
在启动(繁重)工作线程逻辑之前激活微调器,并在工作线程完成后禁用微调器:
var worker = new Worker('workerscript.js');
worker.onmessage = function(event) {
// Do something with event.data, then hide the spinner.
$('#spinner').hide();
};
$('#spinner').show();
worker.postMessage({args: ' foo bar '});
workerscript.js
看起来像这样:
self.onmessage = function(event) {
var results;
// do something
...
// Done:
postMessage(results);
};
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- jQuery UI自动完成突然停止工作
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 如何确定javascript已经完成了某些操作.ios上的
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 在数据提取完成之前进行页面渲染
- jQuery自动完成阻止选择后聚焦
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- Jquery UI自动完成无法工作
- 错误:对象没有't支持'自动完成'
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- Highchart:endOnTick没有完成xaxis的最大极限设置
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 动画完成后的TweenMax
- 添加自定义标记以自动完成
- 角度异步http自动完成
- Don'不允许将焦点集中在自动完成的选择上
- 如何将JSON数据源适合Jquery自动完成小部件
- Javascript - 等待 Web worker 完成
- Web Worker - importScripts "完成"回调