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

      }

    }

  • 相关阅读:
    NFC性价比高频读卡器首选方案:FM17550
    关于ESP8266和ESP8285的对比
    有没有比NRF51822更好的智能穿戴蓝牙方案
    zigbee CC2530首选方案模组:TZU06A1
    PAN3501兼容AS3933-BTST
    NRF51822和NRF52832的主要区别
    集成模拟温度传感器低成本2.4G CC2500RGPR 中文手册
    USB2.0主机控制器 UPD720114 简单详解
    存储器HK1225-7EQ 使用说明书资料
    爬虫 + 数据
  • 原文地址:https://www.cnblogs.com/johnblogs/p/10240765.html
Copyright © 2011-2022 走看看