成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 教你如何終止JQUERY的$.AJAX請求
全站頭部文字 我要出現在這里
教你如何終止JQUERY的$.AJAX請求 682 2024-03-11   

最近遇到,如果用戶頻繁點擊ajax請求,有兩個問題:

1,如果連續點擊了5個ajax請求,前4個其實是無效的,趁早結束節省資源。

2,更嚴重的問題是:最后一個發送的請求,響應未必是最后一個,有可能造成混亂。還需要一個隊列來維護發送的請求和響應。

我其實已經設計好了該隊列的實現方式,后來發現jQuery直接通過abort方法,這樣就不需要那么復雜的實現了,畢竟還有其他事情等著完成。

用jquery發送ajax請求的確是太方便了,$.get、$.post、$.ajax等等,但我們有時候需要中途中止ajax請求。

舉個例子,用comet做聊天時,發送一個請求后,服務端通常過幾十秒后才會刷新鏈接、返回數據。假設服務端是30秒刷新一次鏈接,如果我們在10秒時想要停止這個ajax請求,怎么辦呢?

先上代碼,后面再解釋

var ajaxGet = $.get(“comet_server.php”,{id:1},function(data){
….//一些操作
});
ajaxGet.abort();

上面這段代碼其于兩個知識點:

1. $.get返回的數據類型是XMLHttpRequest,請參考手冊。($.post、$.ajax、$.getJSON、$.getScript也同樣)

2. XMLHttpRequest對象有abort()方法

注意:abort()后,ajax請求立即停止,但還是會執行后面的function()。如果想避免執行其中的操作,可以在function()開始位置加判斷

var ajaxGet = $.get(“comet_server.php”,{id:1},function(data){
if(data.length == 0) return true;
….//一些操作
});
ajaxGet.abort();

終止ajax請求:

var request = $.get(“ajax.aspx”,{id:1},function(data){
  //do something
});
//終止請求動作.
request.abort();

防止重復請求:

var request;
if(request != null)
  request.abort();
request = $.get(“ajax.aspx”,{id:1},function(){
  //do something
});
ajax & setTimeout實現 secondTry 在等待一秒之后將firstTry的ajax終止:
var firstTry = $.ajax(
 //do something
 );
var secondTry = setTimeout(function(){alert(‘ok');firstTry.abort()},1000);


主站蜘蛛池模板: 妹妹扮演的角色| 员工的秘密| 豆包简历个人资料| 黄色网大全| 秀人网朱可儿| 3d怎么玩| 出轨的女人电影| 创业史全文免费阅读| 自相矛盾视频故事视频| 麦德罗| 朱莉安妮av| 黄土高坡歌词| 江南style之我的白日梦| 约翰尼·西蒙斯| 神医喜来乐演员表| 建设工程价款结算暂行办法| 免费观看淫www视频| 抖音1| 雪天使演员表介绍| 七年级地理课时练电子版 | 池田夏希| 美女写真库| 山东教育电视台直播在线观看| 扭曲的欲望| 眼睛胬肉手术多久恢复| 1988年英国的白蛇传说| 膨腹爱好者撑肚子视频| 女生打屁股视频| 韩国电影血色对决免费观看| 丁丁历险记电影| 大海中的船歌词歌谱| 在线免费电影观看| 电影《地狱神探》| 白雪公主和七个小矮人的原文| 扒开双腿猛进入小柔的扮演者| 范海辛电影原声在线观看免费| 4480午夜| wenxi| 少妇的诱惑电影| 砌体工程质量验收规范gb50203---2011| 何昊阳|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103