我正在使用Javascript和jQuery来呈现页面。
页面必须非常快速地加载。因此,我想首先提供一些基本信息,然后才发送另一个请求以获取更多信息。
我的问题是我应该何时发送第二个请求?我如何知道基本信息何时完全呈现并且没有脚本仍在运行?
答案 0 :(得分:3)
答案 1 :(得分:0)
这听起来像是yepnope
的工作答案 2 :(得分:-2)
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);
}
答案 3 :(得分:-3)
设置一个可以用计时器检查的信号量。假设你有5个脚本在运行。设置全局变量finishedRunning=0;
。在每个脚本中,在返回(即完成)之前执行finishedRunning+=1;
。当finishedRunning
达到5时,你很高兴。