最近遇到一個(gè)因?yàn)轫?yè)面中有多個(gè)ajax request請(qǐng)求,導(dǎo)致頁(yè)面中的其它請(qǐng)求,如link,button事件被堵塞,不被響應(yīng)。

        想到之前學(xué)習(xí)jquery的ajax時(shí),其幫助文檔有提到ajax request對(duì)象的abort功能。那就想到解決這個(gè)問題可以將頁(yè)面的所有的ajax reqeust全部abort掉。后面在google查到j(luò)query中已經(jīng)有一個(gè)AjaxManager庫(kù),幾乎就是為我所遇到的這個(gè)問題而生的。哈哈。。。下面介紹一下AjaxManager的簡(jiǎn)單的用法:(v2.5.4)

project site: http://plugins.jquery.com/project/AjaxManager

       //需要先建立AjaxManager(直接呼叫$.manageAjax.Add也會(huì)自動(dòng)建立)
var ajaxManager = $.manageAjax.create('cacheQueue', {
    queue: true, 
    cacheResponse: true
});

這里的setting,default如下:

queue: true, //clear
maxRequests: 1,
abortOld: false,
preventDoubbleRequests: true,
cacheResponse: false

ajaxManager.add({
success: function(html) {
      $('ul').append('<li>'+html+'</li>');
},
url: 'test.html'
});
//另一種使用方式
$.manageAjax.add('clearQueue', {
success: function(html) {
      $('ul').append('<li>'+html+'</li>');
},
url: 'test.html'
});

abort使用:ajaxManager.abort(); 這樣子就把隊(duì)列中的request全abort了,就可以響應(yīng)用戶的操作行為了。