2013-06-27 208 views
0

我有以下代碼在我的頁面上顯示一個php文件。但我希望有人能幫助我,這樣的代碼刷新每300秒Javascript每300秒運行一次腳本

httpRequest("recent-widget.php", showrecent); 
function showrecent(WIDGET){ 
d = document.getElementById('recent-widget'); 
d.innerHTML = WIDGET; 
} 

function httpRequest(url, callback) { 
    var httpObj = false; 
    if (typeof XMLHttpRequest != 'undefined') { 
    httpObj = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
    try{ 
     httpObj = new ActiveXObject('Msxml2.XMLHTTP'); 
    } catch(e) { 
     try{ 
     httpObj = new ActiveXObject('iMicrosoft.XMLHTTP'); 
     } catch(e) {} 
    } 
    } 
    if (!httpObj) return; 
    httpObj.onreadystatechange = function() { 
    if (httpObj.readyState == 4) { // when request is complete 
     callback(httpObj.responseText); 
    } 
    }; 
    httpObj.open('GET', url, true); 
    httpObj.send(null); 
} 
+0

你試過setInterval嗎? –

+2

我強烈建議你爲你的AJAX需求使用一個庫(如jQuery)。 – Stijn

+1

把所有這些放在一個函數中,調用一次,然後使用'setInterval'每300秒調用一次。如果你想重新加載整個頁面,只需使用'setTimeout'調用'window.reload' – sgroves

回答

7

只需使用setInterval重複你的前撥打電話每300000毫秒。例如

setInterval(function() { 
    httpRequest("recent-widget.php", showrecent); 
}, 300000); 
5

你可以這樣做:

setInterval(function() { 
    httpRequest("recent-widget.php", showrecent) 
} , 300000); 
+4

這是不正確的 - 'httpRequest()'將立即在那裏執行,而不是按照時間表。你需要把它包裝在一個'function(){}' – Matt

+0

啊,謝謝馬特!我已經解決了答案。我滑了幾分鐘:\ – tymeJV