簡體   English   中英

如何限制angularjs中的$ http請求?

[英]How do I throttle $http requests in angularjs?

我正在使用angularjs為數據導入器構建UI。 角度應用程序將通過輸入數據源(電子表格或其他)進行處理,並將GET / POST發送到API以在服務器上創建/更新記錄並檢索更改等。

如果用戶正在導入數千條記錄,我可能不希望一次打開數千個ajax調用(而不是Angular能夠在第一次完成之前發送所有請求)。 我的想法是添加某種連接池,以便它可以被限制為10或50左右一次ajax調用。

angular已經有一個內置的限制ajax調用的方法嗎? 我知道我可以毫不費力地建造一個,但如果那里已經有一些東西,我不想重新發明輪子。 任何人都可以推薦任何工具/插件嗎? 我知道jquery有一些,但我希望盡可能避免jquery這個項目。

在進一步調查中,我發現,根據這個問題這個頁面 ,瀏覽器會自動將對同一服務器的http請求限制在6到13個並發請求之間,並且它們會排隊其他請求,直到其他請求完成。 所以,顯然,不需要采取任何行動,我可以讓我的代碼飛起來。

我看了angular-http-throttler (由nathancahill建議),但是(1)它似乎復制了瀏覽器自己已經在做什么,以及(2)它(當前)似乎沒有處理錯誤情況的機制,因此,如果服務器沒有響應,或者它是一個錯誤的請求,它不會減少請求計數,從而永久地堵塞它的隊列。

如果處理大量數據,讓瀏覽器一次排隊太多請求仍會導致內存/性能問題。 我查看了在javascript中創建固定長度隊列的各種技術,它可以在隊列點可用時觸發回調,但javascript的非阻塞性質使得這樣的隊列變得棘手和脆弱......希望,我不需要那個方向(我沒有處理那么多數據),瀏覽器的限制對我來說已經足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM