繁体   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