zoukankan      html  css  js  c++  java
  • 关于jQuery的ajax中取消请求带来的问题

    @(ajax)[error|abort| alert]

    这是jQuery的ajax经常出现的一个问题,其实早些时候我也有碰到过,不过一直以为是系统BUG,没有去深入研究,直到后来看了一个哥们儿博客,才有所深入了解,这里我来说简单说明下:

    jQuery的ajax我们通常喜欢在error方法中添加内容,比如说弹出错误。

            $.ajax({
                type : "post",
                url : "http://localhost:7000/doLogin",
                data : ,
                dataType : "json",
                success : function(data){
                },
                error: function(jqXHR, textStatus, errorThrown){
                        alert('error ' + textStatus + " " + errorThrown);
                },
                complete:function(jqXHR){
                }
            });
     
    

    这里error的三个参数分别是XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是timeouterrornotmodifiedparsererror

    这里本身是没有什么问题,但是如果后台是比较耗时的请求,用户等不及数据返回的话,直接按F5刷新页面,这里就会触发$.ajaxabort方法,abort是终止请求,执行完后他会进入到error方法中。

    所以这里我们需要优化代码

                error: function(jqXHR, textStatus, errorThrown){
                       if(textStatus !== "error"){
                         alert('error ' + textStatus + " " + errorThrown);
                       }
                }
     
    

    可能有人会说,这样的话不同的错误信息不也打印不出来了吗?这个倒不用担心,超时timeout,找不到文件(或者已经被缓存)notmodified和 返回格式不正确parsererror,这几种错误已经足够判断了。

  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/GrubbyHunter/p/4263400.html
Copyright © 2011-2022 走看看