zoukankan      html  css  js  c++  java
  • firefox快速刷新error及解决办法

    问题:

        测试发过来bug,说——频繁F5刷新页面,会闪现未加载完样式的页面;
        开发用的Chrome,没发现这个问题,测试用的firefox,于是从浏览器的刷新加载机制方面搜索解决办法,没搜到,运气好,最后找到了解决办法
        firefox下频繁F5刷新还有个问题——可能ajax未请求完成就刷新了,Chrome下是刷新就自动canceld,但是firefox好像不是,上一次请求的结果因为刷新页面所以执行了error方法,页面闪现一下error方法的结果知道新的页面请求完成。

    请求根本没有发送到后台,状态码是0表示没有发出ajax请求。各个状态含义:

    • 0 - (未初始化)还没有调用send()方法
    • 1 - (载入)已调用send()方法,正在发送请求
    • 2 - (载入完成)send()方法执行完成,
    • 3 - (交互)正在解析响应内容
    • 4 - (完成)响应内容解析完成,可以在客户端调用了

    jQuery ajax请求错误返回status 0和错误error的问题,分析可能的原因:

    • url不存在(排除)
    • url不可达(排除)
    • 发送了跨域请求(排除)
    • 数据格式错(排除)
    • ajax在完成之前请求已经被取消(ajax请求没有发出),由于,例如:页面已经跳转或跳转太快、浏览器输入新的url、按钮立即新的点击等确定

    用status做判断条件,status为0,说明当前是中断,或者unsent,opened,则不执行error
    但是!通过Chrome的调试可以看出,同样是status为0,有canceled和failed两种状态,这个还找不到办法判断。

    解决办法:

    error: function (jqXHR,textStatus,errorthrown) {

      //当前请求容器为空或错误原因为超时时才执行err

      if(jqXHR.status!==0 || textStatus=="timeout"){

        err ? err(jqXHR) : alert("原函数error");

      }

    }

  • 相关阅读:
    .net微信公众号开发——群发消息
    .net微信公众号开发——消息与事件
    .net微信公众号开发——基础接口
    .net微信公众号开发——快速入门
    如何实现ASP.NET中网站访问量的统计
    Asp.Net MVC3.0网站统计登录认证的在线人数
    SQL server 2008数据库的备份与还原(转)
    python创建多层目录的方式
    30款基本UX工具
    B树、B-树、B+树、B*树都是什么(转)
  • 原文地址:https://www.cnblogs.com/johnblogs/p/10240765.html
Copyright © 2011-2022 走看看