以15秒的间隔一个接一个地发送AJAX ASYNC请求

时间:2011-10-16 13:19:29

标签: ajax loops asynchronous

我希望以15秒的间隔从WebServer(PHP)轮询数据50到100次(或者说无限循环,直到stopFlag变量设置为true。)。 对于此数据轮询,我将使用AJAX ASYNC消息将请求发送到WebServer。 我怎样才能实现这一目标? 我试图自己解决这个难题,但不幸的是,我失败了,因为没有关键字暂停javascript中的脚本执行。 有没有办法使它工作?或任何解决方法?如果您已经遇到过这个问题,请告诉我或分享您的经验。

1 个答案:

答案 0 :(得分:1)

您必须使用回调进行超时;它会以递归方式调用下一个函数。

您还可以使用jQuery来帮助您使代码更紧凑。结果可能如下所示:

var finished = false;
function keepTrying() {
  if (finished) {
    return;
  }
  $.ajax(params);
  setTimeout(function() {
    keepTrying();
  }, 15000);
}

在params中你会有这样的成功函数:

function success() {
  finished = true;
}

第一次调用keepTrying();它会循环直到成功。这段代码有点难看,但希望你能得到这个想法。