如何在angularjs中限制$ http请求?

我正在使用angularjs为数据导入器构建UI。 角应用程序将通过输入数据源(电子表格或任何其他)进行处理,并将GET / POST发送到API以创建/更新服务器上的记录并检索更改等。

如果用户正在导入数千条记录,我可能不希望一次打开数千个ajax调用(而不是Angular能够在第一次完成之前发送所有请求)。 我的想法是添加某种连接池,以便它可以一次被限制到10或50个左右的ajax调用。

角度已经有一个内置的节流阿贾克斯调用手段? 我知道我可以在没有太多麻烦的情况下创建一个,但如果已经有一些浮油,我不想重新发明轮子。 任何人都可以推荐任何工具/插件吗? 我知道有一些jQuery,但我希望尽可能避免jQuery,因为这个项目。


在进一步调查的过程中,我发现根据这个问题和这个页面,浏览器会自动将http请求限制到同一个服务器,并发送到6到13个并发请求,然后排队等待其他请求,直到其他请求完成。 所以,显然,不需要采取行动,我可以让我的代码飞行。

我查看了angular-http-throttler(由nathancahill建议),但是(1)它似乎重复了浏览器自己已经在做的事情,并且(2)它没有(当前)似乎具有处理错误情况的机制,所以如果服务器没有响应,或者如果它是一个错误的请求,它不会减少请求计数,从而永久堵塞它的队列。

如果处理大量数据,让浏览器同时排队太多请求仍然会导致内存/性能问题。 我研究了在javascript中创建一个固定长度队列的各种技术,在队列点可用时它可以触发回调,但javascript的非阻塞特性使这样的队列变得棘手和脆弱......希望我不需要走这个方向(我没有处理那么多的数据),浏览器的节流对我来说就足够了。

链接地址: http://www.djcxy.com/p/23303.html

上一篇: How do I throttle $http requests in angularjs?

下一篇: embedded notation for generalization?