【问题标题】:can I send "low priority" xmlhttprequest request that doesn't swamp the broadband?我可以发送不会淹没宽带的“低优先级”xmlhttprequest 请求吗?
【发布时间】:2022-04-11 19:11:00
【问题描述】:

我有一个使用 jQuery 上传大量 POST 数据的脚本,但这会干扰所有其他请求,因为传出数据会淹没浏览器(以及其他东西,如 ssh 客户端)可能发出的任何其他请求。

是否有可能(不太可能,是的)告诉连接放慢一点,因为它不是优先级,并让其他连接通过?

jQuery 被标记,因为这是我正在使用的主要库,但如果答案需要,我可以在较低级别上工作。

【问题讨论】:

  • 将数据拆分为多个部分。在服务器端,您可以处理数据的可伸缩性。 jQuery 不会帮助您进行可扩展的管理。
  • 这是一个有趣的解决方案!如果没有其他更合适的,我会去的。幸运的是上传的数据是纯文本的,所以我可以很容易地做到这一点。
  • 如果您上传的文本过多以至于无法使用宽带连接,请考虑在传输前对其进行压缩。 stackoverflow.com/questions/4856717/…
  • 如果您对后端有类似流的控制,您可以简单地定期推迟从传入文件流中读取并让 TCP 拥塞控制启动。
  • Daniel,可能需要做的工作太多了(它是共享服务器上的标准 LAMP 堆栈)。埃里克,好主意,我现在正在研究客户端压缩算法。结合 Ohgodwhy 的想法,这可能会做到

标签: javascript jquery xmlhttprequest


【解决方案1】:

这个问题没有明确的答案,但评论者提出的想法随着时间的推移而奏效。

当我这些天需要上传很多类似的数据时,我编写了一个处理实际上传的函数。它收集数据并“暂停”几毫秒以查看是否会有进一步的上传请求。当足够的时间过去了,没有上传请求(或者队列有一定的长度或大小),该函数然后将所有上传数据聚合到一个单独的上传到服务器端函数,该函数旨在将它们分开,处理它们,并返回函数的各种结果,然后处理回调(如果有的话)。

上述内容可能听起来很复杂,但它在减少网络淹没方面产生了巨大的影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2021-05-14
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多