zoukankan      html  css  js  c++  java
  • JavaScript 定时任务多事件冲突问题

        var iCount =  setInterval(ChangeTime, 3500);//3.5秒请求一次函数
        function ChangeTime() {
    
            $.ajax({
                type: "POST",
                url: "/Home/Index/is_ajax_no",
                success: function(msg){
                       if(msg == 1){
                          clearInterval(iCount); //停止刷新事件,防止出现页面跳转过慢,请求多次
                          location.href = '/Home/Index/reg_result_no_card';
                          return false;
                       }
                }
    
            });
        }
    //注: 
    最好不要使用setInterval,而用setTimeout的延时递归来代替interval。setInterval会产生回调堆积,容易造成浏览器崩溃。
    如果一个页面有两个setInterval,还会造成冲突
    使用下面的方法
    
    ChangeTime()
    var iCount ; //声明全局,如果有多个定时任务,可以声明多个
    function ChangeTime() {
        $.ajax({
            type: "POST",
            url: "/Home/Index/is_ajax_no",
            timeout:3000,  //超时请求
            success: function(msg){
                   if(msg == 1){
                      clearInterval(iCount); //停止刷新事件,防止出现请求多次
                      location.href = '/Home/Index/reg_result_no_card';
                      return false;
                   }else{
                       clearInterval(iCount); //清除事件继续执行
                       iCount = setTimeout("ChangeTime()",3000);
                   }
            },
    //错误执行事件
        error: function(xmlhttprequest, textstatus, message) {
            if(textstatus==="timeout") {
                 clearInterval(iCount); //清除事件继续执行
                 iCount = setTimeout("ChangeTime()",3000);
            } else {
                alert(textstatus);
            }
        }
    
    
        });
    }
    
    
    
    
    
     
    

      

  • 相关阅读:
    angular11源码探索七[服务二]
    angular11源码探索六[服务基础一]
    有趣的特效,嘤嘤嘤
    angular11学习(十八)
    matplotlib 去掉小方框
    xlrd.biffh.XLRDError 问题报错
    页面点击出现蓝色背景色
    移动端不显示滚动条
    Swiper垂直方向滑动,高度获取不正确的解决方法
    二维树状数组
  • 原文地址:https://www.cnblogs.com/wtcl/p/7613962.html
Copyright © 2011-2022 走看看