猿问

想不懂这个问题出在哪里

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刷新网页就跑去打印?

这能是什么原因造成


人到中年有点甜
浏览 373回答 1
1回答

DIEA

这个情况很诡异,也是题主的逻辑有问题,setInterval大概每3500ms执行一次,但是ajax异步的结果什么时候返回呢?这个时间不确定,所以逻辑不好,建议修改:在ajax添加timeout不使用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();               }        }    });}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答