国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

教你如何終止JQUERY的$.AJAX請求

2024-09-01 08:33:42
字體:
來源:轉載
供稿:網友
本文給大家分享的是使用abort來終止JQUERY的$.AJAX請求的方法和示例,有需要的小伙伴可以參考下
 

最近遇到,如果用戶頻繁點擊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);


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双辽市| 甘泉县| 敦化市| 名山县| 拜泉县| 香河县| 新竹县| 凤庆县| 手游| 湟中县| 枣强县| 呼图壁县| 东山县| 义乌市| 南涧| 华蓥市| 青龙| 天长市| 原平市| 城固县| 垣曲县| 孝义市| 兴业县| 丘北县| 清水县| 敖汉旗| 红安县| 习水县| 宁蒗| 五河县| 宁乡县| 三亚市| 剑川县| 涞源县| 扎囊县| 嘉荫县| 永嘉县| 佛坪县| 安新县| 泸西县| 易门县|