如何确定所有脚本何时完成运行
How to determine when all scripts finished running?
我正在使用Javascript和jQuery来呈现页面。
页面必须很快加载。因此,我想先呈现一些基本信息,然后再发送另一个请求以获得一些额外信息。
我的问题是,我应该什么时候发出第二个请求?我如何知道基本信息何时完全完成渲染,并且没有脚本仍在运行?
使用AMD方法可能更好?除了requirejs,我还喜欢类似的lib。
这听起来像是yepnope 的工作
var asyncOperations = {
counter: -1, // -1 because the value should not already met the ending condition at initialization
finishedHandler: null;
startOp: function() {
if(counter == -1) counter = 0;
counter++;
},
endOp: function() {
counter++;
if(counter == 0 && finishedHandler) {
finishedHandler.inform();
}
}
function handler(data) {
doSomethingWithData();
asyncOperations.endOp();
}
function allOperationsFinished() {
alert("success");
}
function main() {
asyncOperations.finishedHandler = allOperationsFinished;
$.ajax(...whatever..., handler);
}
设置一个可以用计时器检查的信号量。假设您有5个脚本正在运行。设置全局变量finishedRunning=0;
。在每个脚本中,在返回(即完成)之前执行finishedRunning+=1;
。当finishedRunning
达到5时,你就可以出发了。
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 从 jquery.ready() 调用的 javascript 何时相对于 中的脚本运行
- Meteor/Iron路由器-何时何地运行JS以交换到所见即所得
- 何时使用 yeoman angularjs 运行测试
- 使用 setTimeout 在不阻止输入的情况下运行大型任务,并使用 Promise 找出任务何时完成
- 在执行某些 ajax 操作时,此匿名回调函数何时运行
- 在Node.js中,我如何判断何时解析完网页
- 当使用连接到ajax的btn时,何时运行“headers”
- 运行完所有其他代码后,将显示模式弹出加载屏幕
- imacros如何在运行完javascript函数后播放另一个javascript文件
- 如何确定所有脚本何时完成运行
- 如何检查哪些函数运行以及何时运行
- 识别JS脚本何时作为Worker运行
- 执行完一个函数后再运行jquery函数