2013-06-27 171 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