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

2023-12-26

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

如果用户要导入数千条记录,我可能不想一次打开数千个 ajax 调用(Angular 并不能够在第一个请求完成之前获取所有发出的请求)。我的想法是添加某种连接池,以便可以将其限制为一次仅 10 或 50 个左右的 ajax 调用。

Angular 是否已经具有限制 ajax 调用的内置方法?我知道我可以毫不费力地建造一个,但如果已经有一些光滑的东西,我不想重新发明轮子。有人可以推荐任何工具/插件吗?我知道有一些用于 jquery,但我希望在这个项目中尽可能避免使用 jquery。


在进一步调查中,我发现,根据这个问题 https://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browse and 这一页 http://www.browserscope.org/?category=network,浏览器会自动将对同一服务器的 http 请求限制在 6 到 13 个并发请求之间,并且它们会将其他请求排队,直到其他请求完成。所以,显然,不需要采取任何行动,我可以让我的代码飞起来。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 angularjs 中限制 $http 请求? 的相关文章

随机推荐

  • 带有 http-bind 的 strope.js 无法加载资源 404 未找到

    我尝试使用 strope js 连接 ejabberd 服务器 但出现以下错误 POST http localhost http bind 404 Not Found Strophe Bosh processRequest sendFunc
  • RTMP流录制

    我有一堂课 在 ExoPLayer 的帮助下观看 rtmp 流 player ExoPlayerFactory newSimpleInstance context val rtmpDataSourceFactory RtmpDataSour
  • 如何在NUnit测试用例中传递字符串和字典?

    我想对我的方法进行测试 我可以传递 2 个字符串变量 但我不知道如何传递Dictionary lt gt 它看起来像这样 Test TestCase agr1 askdwskdls Dictionary
  • 退出按钮覆盖整个屏幕

    退出按钮覆盖整个屏幕有什么问题 我设置的边界覆盖文本 Exit 因此边界为 x 280 y 385 width 70 height 20 覆盖整个框架的按钮图像 注意 我在笔记本电脑上尝试了相同的代码 它工作得很好 但是当我在学校计算机上运
  • 如何可靠地将 X11 键码转换回扫描码或隐藏使用 ID

    几乎自己解决了 背景信息 Linux 密钥代码 以下内容来自 linux xmodmap tutorial 扫描码 键盘发送到计算机的数字 USB用 键盘 它是由 USB 标准定义的 Keycode Linux 内核用来表示按键 或鼠标 的
  • 在 Visual Studio 2013 中使用 Bootstrap 调试响应式 Web 应用程序时,IE 11 引发异常

    当我调整浏览器窗口大小并遇到响应断点时 此 动态 方法会在第 3 行抛出异常 window BROWSERTOOLS CONSOLE SAFEFUNC function fn var returnFn function return fn
  • R 函数 bs() 的输出解释(B 样条基矩阵)

    我经常使用 B 样条进行回归 到目前为止 我从来不需要理解的输出bs详细信息 我只会选择我感兴趣的模型 并将其与lm 但是 我现在需要在外部 非 R 代码中重现 B 样条模型 那么 生成的矩阵的含义是什么bs 例子 x lt c 0 0 1
  • 如何更改 yii2 中所有 gridview 的标题颜色?

    我想更改所有标题的背景颜色GridViewYii2 中的头文件 我知道下面的代码可以完成这项工作 但我只想更改一次 所有标题都具有相同的颜色 code
  • Chrome 标签在前台长时间处于后台后崩溃/挂起

    我有一个显示实时统计数据的页面 它运行大量 JavaScript 发出大量 HTTP 请求 使用 D3 js 每隔几秒渲染一次 SVG 图表 具有大量 CSS 动画 并频繁重新排列 DOM 只要页面聚焦 它就可以顺利运行 如果我切换到另一个
  • 根据条件更改 GridView 行颜色

    我想根据某些条件更改 gridview 的特定行颜色 我正在使用 ASP NET 和 C protected void GridView1 RowDataBound object sender GridViewRowEventArgs e
  • Python内部排序方法[重复]

    这个问题在这里已经有答案了 有谁知道Python在list sort 内部使用什么类型的排序 或者它至少保证 O n log n 这docs http docs python org 2 tutorial datastructures ht
  • 具有重复键名称的 JSON 在解析时会丢失信息

    因此 要么我回去告诉某人他们应该修复 JSON 要么我需要找出我做错了什么 这是 JSON 请注意范围出现三次 String j jobname test parameters parameter name maxErrors value
  • 通过引用 id 分配给环境(即不将 env. 传递给子函数)

    程序员经常在大函数中使用多个小函数 一路上我们可能想要收集某个环境中的东西以供以后参考 我们可以创造一个环境new env hash FALSE 并将其传递给较小的函数并分配assign 好吧 花花公子 我想知道我们是否可以使用环境的引用
  • 更改 dsym 文件中的 uuid

    我一直在努力改变uuid生成的 dsym 文件 以便 crashlytics 可以将崩溃日志与dsym 你知道有什么方法可以做到吗 有关更多上下文 在构建期间上传 dsym 的脚本失败 我没有注意到 Bitcode 被禁用 因此 itune
  • 如何在 Android 中以编程方式在 EditText 中设置 Id

    我在 GridLayout 上有一个名为 addnewTask 的按钮 当您创建此按钮时 它将创建一个 EditText private GridLayout gridLayout int rowIndex 3 int colIndex 1
  • Postgres 将所有数组值与条件 ---updated 匹配到同一列

    我有表 table a 和以下列 id event id 1 101 1 102 1 103 2 105 2 103 2 106 I 和 to 搜索 101 103 使用 and 条件类似于使用 OR 条件进行 IN 查询 例如 id 1
  • 在开发工具时间轴中,空的绿色矩形是什么?

    在 Chrome 开发工具时间轴中 填充的绿色矩形 代表绘制操作 和空的绿色矩形 显然也代表有关绘制操作的某些内容 之间有什么区别 绘画实际上是两个任务 绘制调用和光栅化 绘制调用 这是您想要绘制的内容的列表 它源自应用于您的元素的 CSS
  • 使用减号而不是方括号来格式化美元的负数 (Java)

    如何得到NumberFormat getCurrencyInstance 用减号打印负的美元货币值 它需要对返回的 DecimalFormat 进行一些调整NumberFormat getCurrencyInstance 以独立于语言环境的
  • 在syncfusion柱形图系列中使用隐藏字段

    我在 ASP NET MVC 中使用syncfusion来让我的应用程序显示图表 并且做得很好 现在我必须为每个轴上生成的每个图表设置隐藏字段 并希望在图表的单击函数调用上获取该隐藏字段的值 控制器 public ActionResult
  • 如何在 angularjs 中限制 $http 请求?

    我正在使用 angularjs 为数据导入器构建 UI 角度应用程序将处理输入数据源 电子表格或其他 并将 GET POST 发送到 API 以在服务器上创建 更新记录并检索更改等 如果用户要导入数千条记录 我可能不想一次打开数千个 aja