鍍金池/ 問答/PHP  HTML/ 想不懂這個問題出在哪里

想不懂這個問題出在哪里

jQuery 代碼:

var iCount =  setInterval(ChangeTime, 3500);
function ChangeTime() {

    $.ajax({
        type: "POST",
        url: "/Home/Index",
        success: function(msg){
               if(msg == 1){
                  clearInterval(iCount); //停止刷新事件,防止出現請求多次
                  location.href = '/Home/reg_result_no_card';
                  return false;
               }
        }

    });
}

這個是ajax 在一個A界面輪詢,當查找到/Home/Index有數據時,停止事件,
跑到/Home/reg_result_no_card界面打印,打印是會自動返回這個A這個界面的
問題來了: 偶爾有時候不跑去打印界面,而是F5刷新網頁就跑去打印?
這能是什么原因造成

回答
編輯回答
怣痛

這個情況很詭異,也是題主的邏輯有問題,setInterval大概每3500ms執(zhí)行一次,但是ajax異步的結果什么時候返回呢?這個時間不確定,所以邏輯不好,建議修改:

  1. 在ajax添加timeout
  2. 不使用setInterval,而是在ajax的返回中根據判定使用來遞歸調用自身;
function ChangeTime() {

    $.ajax({
        type: "POST",
        url: "/Home/Index",
        success: function(msg){
               if(msg == 1){
                  //clearInterval(iCount); //停止刷新事件,防止出現請求多次
                  location.href = '/Home/reg_result_no_card';
                  return false;
               } else {
                   ChangeTime();
               }
        }

    });
}
2017年2月23日 06:19