检测正在运行的javascript工作程序
Detect running javascript workers
我正在编写一个javascript HTML5 phonegap应用程序。我正在使用SQLite来存储数据。为了提高性能,我异步插入数据库,也就是说,我不需要在上一个数据库操作的回调中调用下一个操作。在内部,我相信javascript为每个操作创建了一个worker,因此可以说是多线程的。
现在的问题是,我如何知道所有工人都完成了任务?例如,为了告诉用户所有数据都已保存?
如果我正确理解您的请求,那么您正在排队等待异步运行的DB插入,并且您希望稍后能够进行检查,以查看是否所有请求都已完成。我会这样做:
function asyncTask() {
//
// Do real work here
//
runningTasks--
}
//in your init section, setup a global variable to track number of tasks
runningTasks = 0
//when you need to create a new task, increment the counter
runningTasks++;
setTimeout (asyncTask,1);
if (runningTasks > 0) {
//something still running
} else {
//all tasks are done.
}
在另一种语言中,当测试和设置runningTasks可变时,你需要担心竞争条件,但AFAIK,Javascript只作为单线程实现,所以你不需要担心这一点。
相关文章:
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 如何远程检查JavaScript应用程序的函数调用堆栈
- Windows 8 Javascript应用程序XML对象
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 当send_data完成时,Rails send_data和Javascript处理程序
- 如何使用原型继承编写一个整洁灵活的复杂javascript应用程序
- 我如何知道js文件之间的javascript应用程序代码流
- importScripts在web工作程序中返回未定义的
- 读取在具有IE的工作程序中生成的对象URL
- PHP文件没有't从Javascript应用程序获取$_POST
- 在Windows Metro风格的Javascript应用程序中读取文件内容
- 在前端javascript应用程序中使用DI容器有意义吗
- 使用web工作程序进行多个并发繁重计算
- 将一个主要网站转换为javascript应用程序
- Chrome没有加载最新版本的web工作程序脚本(运行缓存版本)
- 将内联事件处理程序移动到chrome扩展的javascript工作表
- 没有web工作程序的Javascript后台处理
- 如何通过javascript工作程序显示循环进程状态
- 检测正在运行的javascript工作程序
- Javascript应用程序不能正常工作