1. 程式人生 > >Jquery.ajax終止之前的請求

Jquery.ajax終止之前的請求

先敘述一下問題:

介面是這樣的


左側分類每一個點選都會通過ajax向服務端傳送一個請求,這裡不太好使用beforeSend來限制使用者不可點選,那樣體驗比較差,所以現在的情況是當用戶快速點選同一個或多個時,會重複傳送N個請求,當請求返回時導致右側展示內容混亂。

解決辦法:

每一次提交新請求時都斷開之前的請求,保證同一時間等待的僅僅是一個ajax請求。

$.ajax、$.get、$.post都有同一個返回值,可以使用物件接收,當請求未返回且想結束這次請求時,只需要針對物件使用abort()方法即可。


var req;
if(req !=null) req.abort();
req = $.ajax({ ... });