在Interval上的AJAX新XMLHttpRequest不会多次触发

时间:2013-09-22 13:39:25

标签: javascript ajax xmlhttprequest

我使用ajax和php创建计时器并检查队列。这很好用但是一旦计时器到期,我需要再次检查队列。 onExpiry调用有效,但我没有得到新的计时器值。如果我重新加载页面,我只能得到一个新的计时器。是否需要清除XMLHttpRequest才能再次调用它?

<script>
function checkQB(x) {
if (x==1) {
  xmlhttp.abort();
  }
xmlhttp=new XMLHttpRequest();
xmlhttp.open('GET','inc/php/QBconn.php',true);
xmlhttp.send();
xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    var dt=xmlhttp.responseText;
    if ((/^20/).test(dt)==1) {
      var split = dt.split(',');
      var newYear = new Date();
      newYear = new Date(split[0], split[1]-1, split[2], split[3], split[4], 00);
      $('#QBconn').countdown({
        until: newYear, onExpiry: liftOff, layout: 'Next Run in {mn} {ml}, {sn} {sl}'
      });
      }
    else {
      document.getElementById('QBconn').innerHTML='Error';
      }
    }
  }
}

function liftOff() {
  checkQB(1);
  }

checkQB();
</script>

<div id="QBconn"></div>";

1 个答案:

答案 0 :(得分:0)

需要销毁倒计时 xmlhttprequest正常运行

if (x==1) {
  xmlhttp.abort();
  $('#QBconn').countdown('destroy');
  }