• 防止重复发送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('应用加载失败!');
    }
    }
    });


  • 相关阅读:
    安装触动精灵
    云集微助手安装教程和授权说明old
    造粉神器下载地址
    兵工厂安装和使用教程
    云集微助手-操作简介
    转:二叉树的深度优先遍历和广度优先遍历
    转:背包问题的解法
    Moco搭建测试服务器
    Jmeter的内嵌函数和变量
    Jmeter输出HTML的性能测试报告
  • 原文地址:https://www.cnblogs.com/godLike7/p/6807256.html
Copyright © 2020-2023  润新知