2

我正在使用 Javascript 和 jQuery 来呈现页面。

该页面必须非常快速地加载。因此,我想先呈现一些基本信息,然后再发送另一个请求以获取一些附加信息。

我的问题是我应该何时发送第二个请求?我如何知道基本信息何时完全完成渲染并且没有脚本仍在运行?

4

4 回答 4

3

使用AMD方法可能会更好?除了 requirejs 还有我喜欢的类似

于 2013-07-03T21:58:15.693 回答
0

这听起来像是yepnope的工作

于 2013-07-03T23:13:53.867 回答
-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);
}
于 2013-07-03T22:20:29.550 回答
-3

设置一个可以用计时器检查的信号量。假设您有 5 个脚本正在运行。设置一个全局变量finishedRunning=0;。在每个脚本中,就在返回(即完成)之前执行finishedRunning+=1;. 当finishedRunning达到 5 时,你就可以开始了。

于 2013-07-03T21:54:49.123 回答