如何終止前端發起的請求?

2021-10-05 11:08:29 字數 1316 閱讀 9539

當前端請求傳送並且響應未完成時,終止請求,不再返回資料

1,一些列表頁介面比較慢,改變查詢條件後傳送查詢請求,這樣就和上次的查詢請求形成兩個非同步請求,有時可能就會發生本次請求先得到響應資料,然後上一次請求後得到響應資料,這樣在頁面上的查詢結果就會出現bug。(不是單純的防抖和節流就能解決問題)

2,一些大檔案上傳,需要很久的時間,使用者在中途想要終止上傳

如果該請求已被發出,xmlhttprequest.abort()方法將終止該請求。當乙個請求被終止,它的 readystate 屬性將被置為0(unsent)。示例:

url = ""; // 僅為示例,並非真實介面位址。

xhr.open(method,url,true);

xhr.send();

xhr.abort(); // 終止請求示例:

let querytruckajax;

if(querytruckajax)

querytruckajax = $.ajax(,error: function ()

});

axios 提供了乙個 canceltoken的函式,這是乙個建構函式,該函式的作用就是用來取消介面請求的。利用axios請求的config引數,向axios新增乙個包含canceltoken的config配置物件。示例:

取消獲取

data: ,

methods: )

}).then(res => ).catch(err => )

},cancelgetmsg ()

}})

示例:

if (requesttask) 

let requesttask = wx.request(,

header: ,

success (res)

})

如果希望返回乙個requesttask物件,需要至少傳入 success / fail / complete 引數中的乙個,如果沒有傳入 success / fail / complete 引數,則會返回封裝後的 promise 物件。示例:

const requesttask = uni.request(,

success: function(res)

}); // 終止請求

requesttask.abort();

JS前端發起多個Ajax請求

頁面可能產生多個ajax請求 不定數量的 為了使用者體驗,最好是傳送並行請求,這就產生了併發問題,應該如何處理?序列處理的缺點就是會比較慢 var data for var i 0 i利用閉包把資料按照請求的順序放到對應的位置,然後請求資料全回來了一起處理 var dataajax var coun...

HTTP協議如何發起請求

當在瀏覽器位址中輸入乙個url,並按下回車後,就發起了http請求 url 統一資源定位符 也被稱為網頁位址,使網際網路的標準位址,url的標準格式 協議 伺服器ip 埠 路徑 查詢 例如 在windows中可以用curl.exe 工具方請求 windows r cmd 使用 c users 惠普 ...

如何終止正在在傳送的ajax請求

核心 呼叫 xmlhttprequest物件上的abort方法 jquery的ajax方法有自己的超時時間設定引數 ajax 同時 1.get返回的資料型別是xmlhttprequest,請參考手冊。post ajax getjson getscript也同樣 2.xmlhttprequest物件有...