0
我有問題,我有一些jQuery代碼。jQuery:控制事件的順序
使用$ .each我循環了幾個值並調用一些php代碼。在這個$ .each循環完成後,我想加載一個包含特定內容的div。我曾嘗試在$ .each語句後加載div,但加載語句仍然是先執行,顯示錯誤的值。當我把這個負載放在$ .each裏面的時候,雖然它在每次迭代之後加載,而不是在最後加載。有任何想法嗎?
下面是相關的部分我的代碼:
$.each(steps, function(n,step){
$.post("utility.php", {
utility: "getStepValue",
step: step
},
function(data) {
// offset clock
var step_value = data;
$.post("utility.php", {
utility: "offsetClock",
step_value: step_value
},
function(data){
// when load statement inserted here, it works fine
});
});
}
});
// this statement finishes before the $.each, showing the wrong value
$("#clock").load("utility.php", {
utility: "displayClock"
});
衛生署!這很有道理,謝謝。雖然我仍然想知道爲什麼這些函數不是以線性順序執行的? – Domenic
它們是按順序處理的,問題是你所做的請求是異步的,這意味着它們被啓動,當所有的數據返回時,調用回調函數。與此同時,其餘的代碼被執行。 – Seb
這是爲了避免鎖定整個JS引擎,讓用戶獲得更流暢的UI體驗:) – Seb