![](/img/trans.png)
[英]How make ajax update every (n) number of seconds with out using jquery but using javascript?
[英]how to schedule ajax calls every N seconds?
如果我想要每N秒重新加載一整頁,我會在HTML中添加這樣的內容: meta http-equiv="refresh" content="5"
對AJAX調用做同樣的事情是否有標准做法? 我希望安排一個AJAX調用,每隔10秒就會關閉一次,以便更新部分頁面,而無需刷新整個頁面。 如果我可以在不同的時間安排多個AJAX調用會更好,因為頁面的某些部分可能需要比其他部分更頻繁地更新。
TIA
您可以使用setTimeout
或setInterval
(后者可能最適合您想要做的事情)。
setInterval(makeRequest, (10 * 1000));
...其中makeRequest
是一個通過AJAX重新加載某些內容的函數。
function proxy()
{
/* implement call to your Ajax method */
}
setInterval( proxy, 1000 ); // last arg is in milliseconds
You can use serInterval method of javascript:
Just write down the lines at the bottom of your page:
<script>
window.setInterval(function(){
ajaxCallFunction(); //calling every 5 seconds
}, 5000);
function ajaxCallFunction(){
//this function uses ajax to interact with the server
}
<script>
我假設在web.xml中配置了一個帶有URL Pattern / UpdateCount的servlet以提供動態數據/內容,並且jsp頁面中有一個div元素countStatDiv 。
以下代碼使用GET方法每30秒刷新/更新countStatDiv的內容,並且可以根據需要更改變量秒值:
<script>
var request;
var seconds=30;
function getRequestObject(){
setInterval(function() {sendRequest();},seconds*1000);
if (window.ActiveXObject){
return (new ActiveXObject("Microsoft.XMLHTTP"));
} else if (window.XMLHttpRequest){
return(new XMLHttpRequest());
} else {
return (null);
}
}
function sendRequest(){
request = getRequestObject();
request.onreadystatechange = handleResponse;
request.open("GET", "../UpdateCount", true);
request.send(null);
}
function handleResponse(){
if((request.readyState == 4)&&(request.status == 200)){
var serverResponse = request.responseText;
var statCtrl=document.getElementById("countStatDiv");
statCtrl.innerHTML=serverResponse;
}
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.