2013-07-12 26 views
0

如何每5秒鐘檢索一次數據?由於某種原因,它不工作Ajax不會每5秒檢索一次數據

這裏是我的代碼,但不工作:

<script type="text/javascript"> 

     $(document).ready(function(){ 

      setTimeout(function() { 
       $.ajax({ 
      url: 'test_api.php', 
      data: "", dataType: 'json', 
      success: function(rows) { 

       for (var i in rows) { 

        var row = rows[i]; 

        var availability = row[3]; 

        var hostName = row[2]; 

        var intranet = row[6]; 

        var timeRespons = row[4]; 

        $('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+ 
        "<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />"); 

        } 
       } 
      }); 
      }, 5000); 

     }); 

非常感謝你

回答

1

使用setInterval,如果你想調用函數每5秒。 setInterval()方法以指定的時間間隔(以毫秒爲單位)調用函數或評估表達式。

Where方法setTimeout()方法在指定的毫秒數後調用函數或評估表達式。

更改代碼

setInterval(function() { 
    $.ajax({ 
    url: 'test_api.php', 
    data: "", dataType: 'json', 
    success: function(rows) { 
     $('body').html(''); //Clear content 
     for (var i in rows) { 
      var row = rows[i]; 
      var availability = row[3]; 
      var hostName = row[2]; 
      var intranet = row[6]; 
      var timeRespons = row[4]; 
      $('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+ 
      "<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />"); 
      } 
     } 
    }); 
}, 5000); 

如果你想覆蓋body內容,請使用$('body').html(htmlstring);

Demo

+0

肯定的,但的setInterval()是保留追加數據,而不是清爽 – medzi

+1

@Marcel,正如你所指定'$( '身體')。追加()'。如果你不想追加使用'$('body')。html'。 – Satpal

+0

如果我使用$('body')。html(.....)我沒有得到任何輸出,屏幕是空白的 – medzi

2

而不是使用setTimeout的,使用setInterval

setTimeout在指定的時間過去後運行一次。

setInterval在指定的時間連續運行,直到您使用clearInterval停止運行。

$(document).ready(function() { 
    setInterval(function() { 
     $.ajax({ 
     url: 'test_api.php', 
     data: "", dataType: 'json', 
     success: function(rows) { 
      for (var i in rows) { 
       var row = rows[i]; 
       var availability = row[3]; 
       var hostName = row[2]; 
       var intranet = row[6]; 
       var timeRespons = row[4]; 

       $('body').append("<b>availability: </b>" + availability + 
           "<b> hostName: </b>" + hostName + 
           "<b> intranet: </b>" + intranet + 
           "<b> timeResponse: </b>"+timeRespons) 
         .append("<hr />"); 

       } 
      } 
     }); 
    }, 5000); 
});