AJAX 新 XMLHttpRequest at Interval 不触发多次

AJAX New XMLHttpRequest at Interval not firing more than once

本文关键字:Interval XMLHttpRequest at AJAX      更新时间:2023-09-26

我正在使用ajax和php来创建计时器并检查队列。这很好用,但是一旦计时器过期,我需要再次检查队列。到期调用有效,但我没有得到新的计时器值。如果我重新加载页面,我只能获得一个新的计时器。是否需要清除 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>";

计时需要销毁XMLhttpRequest 运行正常

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