为了账号安全,请及时绑定邮箱和手机立即绑定

想不懂这个问题出在哪里

想不懂这个问题出在哪里

人到中年有点甜 2019-02-15 18:14:56
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刷新网页就跑去打印?这能是什么原因造成
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

这个情况很诡异,也是题主的逻辑有问题,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();

               }

        }


    });

}


查看完整回答
反对 回复 2019-02-20
  • 1 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号