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();
}
}
});
}
添加回答
举报
0/150
提交
取消