2013-09-30 52 views
0

在文檔準備就緒之前,繼續執行JS代碼(每隔100毫秒)的最佳方式是什麼?執行Js代碼,直到文檔準備好

setInterval(function() { 
    xajax_updateLoader(); 
}, 100); 

一個文件準備就緒。執行應該停止。

+0

有什麼特別的原因,爲什麼你不使用'$(文件).ready'? – Johan

+0

一旦文檔準備就緒,我不想執行代碼,但在文檔準備就緒之前繼續執行它 – Alucard

回答

1
var interval = setInterval(function() { ... }, 100); 
window.onload = function() { clearInterval(interval); } 

這將清除onload事件的時間間隔。

1
var handle = setInterval(function() { 
    xajax_updateLoader(); 
    if (jQuery.isReady) { 
     //DOM is ready 
     clearInterval(handle); 
    } 
}, 100); 
1

像這樣

domReady = false; 

var ctx = setInterval(function() { 
if (domReady === true) 
{ 
    clearInterval(ctx); 
} 
// your code here 
}, 100); 

if (typeof document.addEventListener !== 'undefined') // chrome/safari/firefox 
{ 
document.addEventListener("DOMContentLoaded", function(){ 
    domReady = true; 
    document.removeEventListener('DOMContentLoaded'); 
}, false); 
} 
else if (typeof document.attachEvent !== 'undefined') // IE 
{ 
document.attachEvent("onreadystatechange", function(){ 
    if (document.readyState === "complete") 
    { 
    document.detachEvent("onreadystatechange", arguments.callee); 
    domReady = true; 
    } 
}); 
} 
1

使用clearInterval()

var interval = setInterval(function() { ... }, 100); 
$(document).ready(function(){ 
clearInterval(interval); 
}); 
2
var updateInterval; 
$(function(){ 
updateInterval= setInterval(function() { 
    xajax_updateLoader(); 
}, 100); 
}); 

$(windows).load(function(){ 
    clearInterval(updateInterval) 
});