難題:多個ajax請求並存,可能只會執行一個ajax請求。
思路:
養成好習慣,請求完一個ajax,就delete這個請求,再把它賦值為null;
難題:多個ajax請求造成頁面堵塞。
多個AJAX請求之間會存在一定影響的情況。常見情況:
1.多個AJAX返回的是同一個數據的不同部分。我們需要在前端把這些數據組合成一個完整的數據來運用。我們要知道這些數據的次序來夠正確拼接。
2.不同查詢條件下的同一組數據。(我們可能需要的是最新的一組數據)。
3.后面的AJAX要用到的前面AJAX的數據。
所以獲得后台傳遞給我們數據的順序十分必要。通常有以下幾種方法:
1.遞歸,在回調函數中執行下一個AJAX。問題是如果中間某一個AJAX沒有正常返回,后面的AJAX就有不執行的風險。所以可能需要做一些特別的處理。
2.同步AJAX。 不是很推薦。瀏覽器分分鍾失去響應。嚴重影響用戶體驗。
3.方法三.從回調函數上面想辦法。可以用閉包來記錄當前是第幾組的AJAX請求,回調函數中讀取。正常發起AJAX請求即可。
4.前后台的協商。對於不需要保證返回順序。只需要確定所返回結果是對應第幾組數據的。 可以AJAX傳遞當前是第幾組數據的標識。后台返回結果的時候再把這個標識返回過來。這樣回調函數也能識別到拼裝的次序。但是這種情況有限制,對於一些網絡公共接口,它返回的數據不是我們能左右的。
5.放數組里控制。
參考:https://www.v2ex.com/t/353038