如何用JavaScript检查每10秒的状态?

时间:2011-08-07 08:27:06

标签: javascript

我有一个服务器( mysite.com/status ),它返回活动任务的数量(只是一个整数)。 如何使用JavaScript每10秒检查一次活动任务的数量,并向用户显示如下内容:

  

剩余任务数量:XXX

而且,如果任务数为0,那么我应该加载另一页。

5 个答案:

答案 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。