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);
            }
        }
    
    
        });
    }
    
    
    
    
    
     
    

      

  • 相关阅读:
    第七周作业
    第六周作业
    第四周作业
    第三周作业
    第二周作业
    第一周作业
    第0次作业
    第四次作业
    第三次作业
    第二次作业
  • 原文地址:https://www.cnblogs.com/wtcl/p/7613962.html
Copyright © 2011-2022 走看看