如果我想要每N秒重新加载一页,我会在HTML中添加这样的内容:
meta http-equiv="refresh" content="5"
对于AJAX调用做同样的事情是否有标准做法?我希望安排一个AJAX调用,每隔10秒就会关闭一次,以便更新部分页面,而无需刷新整个页面。如果我可以在不同的时间安排多个AJAX调用会更好,因为页面的某些部分可能需要比其他部分更频繁地更新。
TIA
答案 0 :(得分:11)
您可以使用setTimeout
或setInterval
(后者可能最适合您想要做的事情)。
setInterval(makeRequest, (10 * 1000));
...其中makeRequest
是一个通过AJAX重新加载某些内容的函数。
答案 1 :(得分:4)
function proxy()
{
/* implement call to your Ajax method */
}
setInterval( proxy, 1000 ); // last arg is in milliseconds
答案 2 :(得分:1)
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>
答案 3 :(得分:0)
我假设在web.xml中配置了一个带有URL模式 / UpdateCount 的servlet来提供动态数据/内容,并且在其中有一个div元素 countStatDiv jsp页面。
以下代码使用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>