zoukankan      html  css  js  c++  java
  • 防止重复发送ajax请求

    前端代码是当输入密码个数为6个的时候,触发ajax请求,但输入很快的时候会触发多个请求,为了防止重复发送请求。

    可以利用jquery ajaxPrefilterzhong中断请求

    局限性:仅仅对jquery 发送的ajax请求有作用

    调用abort后jquery会执行error的方法,抛出abort的异常信息。可以使用以下方式区分出该类型的异常。

    error:function(jqXHR, textStatus, errorThrown){
    if(errorThrown != 'abort'){
    //ajax被调用abort后执行的方法
    alert('应用加载失败!');
    }
    }

    Demo:

    var pendingRequests = {};
    jQuery.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
    var key = options.url;
    if (!pendingRequests[key]) {
    pendingRequests[key] = jqXHR;
    }else{
    jqXHR.abort(); //放弃后触发的提交
    //pendingRequests[key].abort(); // 放弃先触发的提交
    }

    var complete = options.complete;
    options.complete = function(jqXHR, textStatus) {
    pendingRequests[key] = null;
    if (jQuery.isFunction(complete)) {
    complete.apply(this, arguments);
    }
    };
    });
    $.ajax({
    type:"post",
    url:url,
    data:{"act":"checkpwd","password":pwd},
    dataType:"json",
    success:function(request){
    if(request.statu == 0){
    Air_View("支付密码错误");
    }else{
    $("#walletpay").submit();
    }

    },
    error:function(jqXHR, textStatus, errorThrown){
    if(errorThrown != 'abort'){
    //ajax被调用abort后执行的方法
    alert('应用加载失败!');
    }
    }
    });


  • 相关阅读:
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 42. 连续子数组的最大和
    剑指 Offer 41. 数据流中的中位数
    剑指 Offer 40. 最小的k个数
    剑指 Offer 39. 数组中出现次数超过一半的数字
    剑指 Offer 38. 字符串的排列
    MySQL更改密码
    WPF中的MySQLHelper
    WPF多线程
    mysql-5.7.28-winx64(压缩包)安装教程
  • 原文地址:https://www.cnblogs.com/godLike7/p/6807256.html
Copyright © 2011-2022 走看看