解決多併發的ajax請求

難題:多個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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章