我正在使用Javascript和jQuery來呈現頁面。如何確定所有腳本何時完成運行?
頁面必須快速加載。因此,我想先呈現一些基本信息,然後才發送另一個請求以獲取一些其他信息。
我的問題是我應該何時發送第二個請求?我如何知道基本信息何時完成渲染並且沒有腳本仍在運行?
我正在使用Javascript和jQuery來呈現頁面。如何確定所有腳本何時完成運行?
頁面必須快速加載。因此,我想先呈現一些基本信息,然後才發送另一個請求以獲取一些其他信息。
我的問題是我應該何時發送第二個請求?我如何知道基本信息何時完成渲染並且沒有腳本仍在運行?
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);
}
這聽起來像是爲yepnope
工作,我猜你使用'$。阿賈克斯()'方法。所以看看這些文檔,你會看到當成功完成請求時你可以使用'success'選項來運行代碼。 – Ian
我想有多個請求與他們自己的處理程序,並希望知道什麼時候所有完成... –
做與基本信息相關的腳本做任何異步處理,如ajax?如果沒有,你可以確信它們都按照它們包含的順序運行,並且你可以把代碼加載到其他腳本的最後一個腳本後面。將腳本放在主體的末尾,您可以確信所有基本內容在運行之前都已加載。 – nnnnnn