2
我瘋了,試圖讓一個微調出現。我結合我沉重的處理功能,從而按鈕:在jQuery Mobile 1.1中進行大量處理之前顯示加載微調器?
$(document).delegate("#clearread", "tap", onClearRead);
所以自來水調用此:
var onClearRead = function() {
setTimeout($.mobile.showPageLoadingMsg, 5);
// Civilised cleaning of saved status
var jStorIndex = $.jStorage.index();
for (var i = 0; i < jStorIndex.length; i++) {
if(jStorIndex[i] != "version") {
$.jStorage.deleteKey(jStorIndex[i]);
}
}
// Load articles afresh
loadArticles();
$.mobile.changePage("#choosearticle");
} //onClearRead
我發現的清/加載過程中的微調不會出現文章(大約10秒),但僅在#choosearticle頁面加載(0.5秒)的短時間內。 我在做什麼錯?
我有微調工作在應用程序的其他地方。
感謝
@Nirmal帕特爾只是固定我的問題,但任何人都知道_WHY_需要瘋狂隨機的setTimeout?我讀過它是關於CPU爭用的問題,任何人都可以更詳細地解釋? – Alveoli
問題是JS在瀏覽器中的單個線程中運行。所以如果你投入大量的處理,在JS完成之前,瀏覽器不會嘗試重新繪製/重繪內容。當JS完成時,我們調用了一個changePage()... setTimeout只是讓瀏覽器有足夠的喘息時間來完成其他任務,然後再回到JS中繁重的工作。 –
終於有些清晰了 - 謝謝! – Alveoli