婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 防止重復發送Ajax請求的解決方案

防止重復發送Ajax請求的解決方案

熱門標簽:目標三維地圖標注 百靈鳥 老虎郵局地圖標注點 徐州電銷卡外呼系統供應商 青海醫療智能外呼系統怎么樣 外呼系統獲取客戶手機號 上海浦東百度地圖標注中心注冊 科智聯智能電銷機器人 襄陽外呼系統接口

在頁面中有多個按鈕,點擊該按鈕可以異步的去服務端讀取數據,然后在前端將數據展示出來。 每個按鈕點擊請求的頁面都是同一個,但是請求的參數不同,所以返回的內容就不同。 在連續點擊多個按鈕的時候就會發出多個異步請求。那么根據請求返回的快慢(因為不同按鈕參數不同,返回內容不同,所以會有快慢之分),數據會依次的展示出來,那么就會出現一個先點擊的按鈕,由于他請求的數據量比較大,導致數據被后顯示出來。

一、問題解決

解決這種問題有兩種方式:

  • 1.當連續進行多個請求,并且請求的url地址相同時。放棄前面的所有請求,只執行最后一次請求。
  • 2.當連續進行多個請求,并且請求的url地址相同時。放棄后面的所有請求,只執行第一次請求。

二、解決方案

1、將ajax請求的async設置為false

$.ajax({ 
 async: false, 
 type : "POST", 
 url : defaultPostData.url, 
 dataType : 'json', 
 success : function(data) { 

 } 
}); 

async

  • 類型:Boolean
  • 默認值: true。默認設置下,所有請求均為異步請求。如果需要發送同步請求,請將此選項設置為 false。
  • 注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。

2、利用jquery ajaxPrefilter中斷請求

由于第一種方案只是一種曲線救國的方式,其實沒能真正的解決上面的問題。所以,建議使用這種方式。

 var pendingRequests = {};
 $.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
  var key = options.url;
  console.log(key);
  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 ($.isFunction(complete)) {
   complete.apply(this, arguments);
   }
  };
 });

Prefilters是一個預過濾器,在每個請求之前被發送和$.ajax()處理它們前處理。

  • options 是請求的選項
  • originalOptions 值作為提供給Ajax方法未經修改的選項,因此,沒有ajaxSettings設置中的默認值
  • jqXHR 是請求的jqXHR對象

以上內容的核心思想是維護一個隊列,發送請求時,將請求加入隊列,請求響應后,從隊列中清除,這就保證了在任一時刻只能有一個同樣的請求發送.

局限性:僅僅是前臺防止jquery的ajax請求。對于非jquery的ajax請求,不起作用。因為使用的是jquery的ajaxPreFilter函數,僅僅對jquery的ajax請求有作用。

調用abort后jquery會執行error的方法,拋出abort的異常信息。可以使用以下方式區分出該類型的異常。

var ajax = $.ajax({
 'error':function(jqXHR, textStatus, errorThrown){
  if(errorThrown != 'abort'){
   //ajax被調用abort后執行的方法
   alert('您的ajax方法被停止了');
  }
 }
})

三、Demo

按鈕每次點擊都會向后端發送請求,下面的demo實現了多次點擊按鈕之后,只保證最后一次點擊的請求能夠成功。

button id="button1">button1/button>
button id="button2">button2/button>
button id="button3">button3/button>  
script>
  var pendingRequests = {};
  jQuery.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
   var key = options.url;
   console.log(key);
   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);
    }
   };
  });
  !-- 異步加載應用列表開始 -->

  $("#button1").live("click", function() {
    $.ajax('config/ajax/appinfoListFetcher.json', {
    type:'POST',
    data: {param1:value1,
       param2:value2,
      },
    success: function(res){
      //后端數據回寫到頁面中
    },
    error:function(jqXHR, textStatus, errorThrown){
     if(errorThrown != 'abort'){
      //ajax被調用abort后執行的方法
      alert('應用加載失敗!');
     }
    }
    });
    !-- 異步加載應用列表結束 -->
   });
/script>

以上就是解決重復發送Ajax請求的方案,希望對大家的學習有所幫助。

您可能感興趣的文章:
  • Ajax發送和接收二進制字節流數據的方法
  • Extjs ajax同步請求時post方式參數發送方式
  • 詳解JavaScript for循環中發送AJAX請求問題
  • AJAX使用post發送數據xml格式接受數據
  • js與jQuery終止正在發送的ajax請求的方法
  • AJAX中同時發送多個請求XMLHttpRequest對象處理方法
  • jQuery通過Ajax向PHP服務端發送請求并返回JSON數據
  • jquery+ajax每秒向后臺發送請求數據然后返回頁面的代碼
  • jquery跨域請求示例分享(jquery發送ajax請求)
  • 在Web關閉頁面時發送Ajax請求的實現方法

標簽:辛集 佛山 荊州 揭陽 股票 紅河 咸寧 商洛

巨人網絡通訊聲明:本文標題《防止重復發送Ajax請求的解決方案》,本文關鍵詞  防止,重復,發送,Ajax,請求,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《防止重復發送Ajax請求的解決方案》相關的同類信息!
  • 本頁收集關于防止重復發送Ajax請求的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲一区二区视频| 欧美一区二区三区色| 亚洲三级电影网站| 国产精品色呦呦| 在线不卡中文字幕播放| 色哟哟一区二区在线观看| 91丝袜美腿高跟国产极品老师| 久久超级碰视频| 成人午夜视频在线| 99国产精品一区| 欧美精品在线视频| 尤物视频一区二区| 日韩精品在线看片z| 99r国产精品| 日本v片在线高清不卡在线观看| 欧美精品一区男女天堂| 一本一本大道香蕉久在线精品 | 91麻豆精东视频| 欧美精品国产精品| 国产精品久久二区二区| 日韩av一区二| 在线视频你懂得一区二区三区| 欧美成人a在线| 蜜乳av一区二区| 精品不卡在线视频| 亚洲综合一二区| 国产精品1区2区3区| 欧美日韩亚洲综合一区二区三区| 精品理论电影在线观看| 日日夜夜免费精品视频| 色婷婷亚洲综合| 亚洲一级片在线观看| 国产在线播放一区| 欧美成人一区二区| 激情另类小说区图片区视频区| 欧美日韩久久久| 一区二区三区四区五区视频在线观看| 日韩欧美在线综合网| 在线观看91精品国产麻豆| 亚洲成人www| 欧美成人aa大片| 白白色亚洲国产精品| 成人性生交大片免费 | 欧美国产国产综合| 国产欧美一区二区三区沐欲| 666欧美在线视频| 精品欧美久久久| 欧美激情一区二区三区在线| 国产精品久99| 欧美www视频| 北条麻妃一区二区三区| 亚洲视频资源在线| 7777精品伊人久久久大香线蕉经典版下载| 亚洲福利视频一区二区| 亚洲午夜久久久久久久久久久| 欧美一区二区三区视频免费| 不卡av免费在线观看| 亚洲电影欧美电影有声小说| 国产免费成人在线视频| 日韩午夜激情av| 欧美系列亚洲系列| 成人av电影在线| 懂色av一区二区夜夜嗨| 欧美日韩免费在线视频| 美女www一区二区| 午夜视频一区在线观看| 亚洲午夜电影在线| 综合av第一页| 26uuu国产日韩综合| 69av一区二区三区| 欧美日韩亚洲综合在线| 欧美午夜一区二区三区| av高清不卡在线| 在线看不卡av| 欧美一区二区三区在线视频| 在线观看区一区二| 欧美中文字幕一区二区三区亚洲 | 国产成人av电影在线观看| 91福利在线观看| 亚洲午夜电影网| 欧美日韩卡一卡二| 亚洲国产精品一区二区www| 色综合天天综合网天天看片| 亚洲欧洲日韩综合一区二区| 97se狠狠狠综合亚洲狠狠| 亚洲精品美国一| 九一九一国产精品| 成人美女在线视频| 欧美精品久久天天躁| 欧美日韩国产一级| 中文字幕免费不卡在线| 国产三级精品三级| 亚洲精品久久久蜜桃| 另类调教123区| 91蜜桃在线观看| 日韩免费性生活视频播放| 国产精品污网站| 精品一区二区影视| 欧美三级日本三级少妇99| 麻豆91在线观看| 99视频精品免费视频| 欧美男人的天堂一二区| 欧美高清一级片在线观看| 亚洲另类中文字| 成人av在线资源网站| 中文字幕亚洲综合久久菠萝蜜| 风间由美性色一区二区三区| 欧美大片在线观看一区二区| 亚洲欧美国产77777| 波多野结衣一区二区三区| 91精品国产一区二区人妖| 一区二区三区日本| 国产suv精品一区二区883| 日韩色视频在线观看| 日韩影院免费视频| 欧美日本国产一区| 免费欧美在线视频| 91精品国产入口| 国产乱码一区二区三区| 精品久久一区二区三区| 久久精品国产色蜜蜜麻豆| 精品国产免费久久| 国产一区二区精品久久99| 国产偷国产偷精品高清尤物| 99久久精品国产一区二区三区| 亚洲天堂免费在线观看视频| 欧美午夜免费电影| 精品久久一区二区| 国产精品羞羞答答xxdd| 国产欧美日产一区| 欧美亚洲图片小说| 性感美女久久精品| 久久精品在线免费观看| 色婷婷久久99综合精品jk白丝| 2023国产精华国产精品| 一二三区精品视频| 欧美美女一区二区| 国产原创一区二区三区| 欧美激情综合在线| 成人视屏免费看| 日韩高清不卡一区二区三区| 日韩欧美电影一区| 久久精品国产久精国产爱| 欧美成人video| 国产成人免费在线观看不卡| 国产精品每日更新在线播放网址| 成a人片亚洲日本久久| 肉色丝袜一区二区| 中文字幕在线观看不卡| 欧美精品色一区二区三区| 看国产成人h片视频| 国产精品视频免费| 欧美电影一区二区三区| 床上的激情91.| 亚洲综合一二三区| 综合激情网...| 日韩不卡免费视频| 亚洲精品免费视频| 亚洲天堂av一区| 亚洲精品一区二区三区四区高清| 日本韩国欧美三级| 99热在这里有精品免费| 青青草国产成人99久久| 日本不卡不码高清免费观看| 亚洲理论在线观看| 亚洲一区在线观看网站| 亚洲成人综合在线| 久久影院视频免费| 欧美va亚洲va香蕉在线| 久久精品人人爽人人爽| 久久久精品国产99久久精品芒果 | 亚洲影视资源网| 亚洲男同性视频| 香蕉加勒比综合久久| 亚洲欧美激情小说另类| 亚洲黄网站在线观看| 亚洲综合清纯丝袜自拍| 另类中文字幕网| 国产成人一区在线| 99国产精品久| 91精品国产乱| 久久精品国产在热久久| 不卡欧美aaaaa| 欧美一区在线视频| 亚洲国产一二三| 日韩一区二区视频在线观看| 日本不卡免费在线视频| 欧美xxxxxxxxx| 亚洲成人资源网| 成人午夜激情视频| 成人黄动漫网站免费app| 夜夜嗨av一区二区三区四季av| 欧美性大战久久久久久久| 日本va欧美va欧美va精品| 国产欧美一区二区三区网站| caoporn国产一区二区| 久久精品一区二区三区四区| 97aⅴ精品视频一二三区| 中文字幕佐山爱一区二区免费| 成人网男人的天堂|