我有一个服务器( mysite.com/status ),它返回活动任务的数量(只是一个整数)。 如何使用JavaScript每10秒检查一次活动任务的数量,并向用户显示如下内容:
剩余任务数量:XXX
而且,如果任务数为0,那么我应该加载另一页。
答案 0 :(得分:4)
使一个函数设置一个新的超时调用自己。
function checkTasks(){
// Make AJAX request
setTimeout(checkTasks, 10000);
}
checkTasks(); // Start task checking
答案 1 :(得分:3)
使用jQuery for AJAX函数...(未经测试的代码)
setInterval(function(){
$.get('http://example.com/status',function(d){
// where there is html element with id 'status' to contain message
$('#status').text('Number of remaining tasks: '+d)
if(d == 0){
window.location = '/another/page'
}
})
},10000)
答案 2 :(得分:0)
setInterval(function(elem){ // here elem is the element node where you want to display the message
var status=checkStatus(); // supposing that the function which returns status is called checkStatus
if(status == 0){
window.location = '/another/page'
}
else {
elem.innerHTML="Number of remaining tasks:"+status;
}
},10000)
答案 3 :(得分:0)
我想到了不同的方法,没有任何AJAX。由于您只需要显示简单的普通数据,只需使用<iframe>
来显示动态数据,然后使用简单的JS每10秒“重新加载”一次帧。
HTML将是:
Number of remaining tasks: <iframe id="myFrame" src="mysite.com/status"></iframe>
JavaScript:
window.onload = function() {
window.setTimeout(ReloadTime, 10000);
};
function ReloadTime() {
var oFrame = document.getElementById("myFrame");
oFrame.src = oFrame.src;
window.setTimeout(ReloadTime, 10000);
}
Live test case,使用相同时间的时间。
使用一些CSS,您可以使框架看起来像文本的一部分,只需设置固定的宽度和高度并删除边框。
答案 4 :(得分:-2)
使用javascript库jquery,您可以设置重复的无限循环。 它从页面获取数据,然后设置元素的内部html。
http://jsfiddle.net/cY6wX/14/ 此代码未经测试
编辑:演示更新 另外,我不使用jquery选择器来设置值,以防你不想使用jquery。