【问题标题】:Size limit for the return value of a jQuery or JavaScript ajax get method?jQuery 或 JavaScript ajax get 方法的返回值的大小限制?
【发布时间】:2012-02-09 21:13:28
【问题描述】:

当我使用 ajax GET 方法时,返回值是否有大小限制?

如果是这样,这个限制是由于 JavaScript/jQuery 造成的吗?到浏览器?到服务器?

我看过似乎表明存在大小限制的旧文章(5 年以上),但我找不到有关此主题的任何最新信息。

【问题讨论】:

  • 据我所知有请求大小限制。也就是说,某些浏览器不允许调用超过 2K 字符的 URL...但是对于响应我不确定,这对我来说真的很惊讶...

标签: javascript jquery ajax browser get


【解决方案1】:

是的,有一个限制。它取决于架构和可用内存。在具有 2G 和 64 位构建的 x86_64 机器上,它将失败并显示 InternalError:脚本堆栈空间配额已用完,但是在具有 4G 和 64 位构建的 x86_64 上它将通过。

所以它最终取决于运行和托管脚本的机器来有效地处理请求。

如果您收到 InternalError Script Stack 消息,这仅表示您需要升级硬件来运行请求。

“控制”的方法是执行所谓的“节流”。请参阅另一个堆栈以供参考: How to rate-limit ajax requests?

【讨论】:

    【解决方案2】:

    HTTP 协议不限制任何响应的大小,jQuery 本身也不限制。所以理论上来说,你可以让你的 GET 响应随心所欲。

    然而,在实践中,一些限制:Web 服务器可能具有最大响应大小(尤其是当您缓存整个响应时),服务器代码可能需要需要额外的中间处理步骤存储,客户端需要在处理响应数据之前将其存储在某处,浏览器上的 javascript 实现可能有额外的内存限制(您不希望流氓脚本占用您所有的物理 RAM:这将是一个严重的安全问题) .不过,到底多少是太多很难确定:几兆字节可能还可以,一兆字节肯定不行。

    请注意,在这种情况下,请求方法非常无趣;上述问题对于对 POST 请求或任何其他 HTTP 动词的响应同样有效。

    【讨论】:

      猜你喜欢
      • 2012-10-20
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      相关资源
      最近更新 更多