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

      }

    }

  • 相关阅读:
    到底有多少种智能指针(smart pointer)
    QSettings提供了非常方便的注册表读写
    阿里腾讯亿元级投资版图:阿里爱买超市,腾讯娱乐至上(恐怖)
    gcc安装教程(学习Linux编程只需安装cygwin)
    苹果抛弃的芯片公司Imagination被中资49亿溢价收购
    NET Core2
    HelloWorld RabbitMQ
    redis 集群
    kafka
    Impala简介PB级大数据实时查询分析引擎
  • 原文地址:https://www.cnblogs.com/johnblogs/p/10240765.html
Copyright © 2011-2022 走看看