2011-08-31 99 views
0

我正在使用jQuery,并且我有一个aAax请求,如下所示;定时AJAX请求

$.ajax({ 
     type: 'POST', 
     url: 'test.php', 
     data: { 
      data: "test_data" 
     }, 
     cache: false, 
     success: function(result) { 
      if (result == "true"){ 
       alert("true"); 
      }else{ 
       alert("false"); 
      } 
     }, 
    }); 

这很好。但是,我希望在特定的时间间隔内及时做到这一点。说,我想每30秒执行一次。该页面不应该重新加载。我希望这发生在背景中,隐藏。任何人都知道如何做到这一点?

回答

2
setInterval(function() { 
    $.ajax({ 
     type: 'POST', 
     url: 'test.php', 
     data: { 
      data: "test_data" 
     }, 
     cache: false, 
     success: function(result) { 
      if (result == "true"){ 
       alert("true"); 
      }else{ 
       alert("false"); 
      } 
     } 
    }); 
}, 30000); 
+0

这不是我正在寻找。我希望我的脚本在循环中每30秒启动一次,无论结果如何,就像每30秒发出一声“嗨”一样。 –

+0

已修复!如果你想停止定时请求,只需存储setInterval返回并稍后销毁它。 – cvsguimaraes

+0

这里有一把小提琴给你更好的理解 http://jsfiddle.net/FatUe/1/ – cvsguimaraes

1

使用setInterval? http://www.w3schools.com/jsref/met_win_setinterval.asp

或者,如果你只希望它成功的消息后运行,你可以使用的setTimeout在成功回调回顾,发送一个Ajax请求

+0

+1功能。只是不提及w3schools,那里有很多错误。 – J0HN

+0

我知道,但我不认为这适用于这种情况,并有一个非常基本的,但有用的写:-) – Alex