gpt4 book ai didi

jquery - Heroku SSL Rails 应用程序中的 MSIE $.ajax 延迟

转载 作者:行者123 更新时间:2023-12-01 04:05:48 25 4
gpt4 key购买 nike

我们在 Heroku 上有一个 Rails 3 应用程序,该应用程序在 IE11 中的 jQuery AJAX 请求上遇到了长时间延迟,尤其是持续约 4 或 5 秒。请求并没有失败;他们只是需要永远。 Chrome、FF 和 Safari 等文明浏览器都会在不到一秒的时间内做出响应。我可以看到服务器上的响应时间很快,但 IE 需要 4-5 秒才能显示请求已完成。

我有一个准系统应用程序来演示:https://ajax-testing.herokuapp.com/test 。单击文本会将 AJAX 请求发送到服务器,服务器会回显该请求并显示在警报中。我发现它在除 IE 之外的所有浏览器中都很快,在 IE 中,您在 5 秒内看不到警报。

当我在本地测试时,我没有遇到延迟,但当它部署到 Heroku 时,我会遇到延迟。我确定这与 Heroku 上的 SSL 有关,因为如果我将 config.force_ssl 设置为 false,问题就会消失。 Heroku 上的 SSL(有延迟)和非 SSL(无延迟) header 之间的唯一真正区别是 SSL 版本中的 Strict-Transport-Security header 。

这是 AJAX 请求的代码...

  $.ajax({
type: "POST",
url: "ajax_call",
dataType: 'json',
data: { message: "Test message" }
}).done(function(data) {
alert(data["message"]);
});

设置:

  • Heroku 上的 Rails 3.2.21
  • jQuery 1.11.1
  • 尝试过 Thin 和 Unicorn
  • IE 11.0.9600.17633(11.0.16 更新)

我尝试了不同的服务器,取出 dataType 和其他 $.ajax 变体,添加 IE 特定的元标记等。我在网上找不到任何对此特定问题的引用。有人对它可能是什么或如何进一步缩小范围有建议吗?

最佳答案

由于最近的负载均衡器更新中存在错误,结果证明这是 Heroku 问题。我花了很多时间来追查这个问题,假设它是由最近的 IE 更新引起的,这与问题的第一份报告一致,而且 IE 是我们测试中唯一受影响的浏览器。

当我看到 JavaScript 执行问题时,我的第一个想法不是:检查 ELB——但它可能应该是;)这是我们的应用程序第一次由于 Heroku/Amazon 更新而中断.

显然,问题发生在没有 Content-LengthTransfer-encoding: chunked header 的请求上,并且它可能只影响某些堆栈配置,否则我想我应该能够找到更多相关报道。

如果您遇到此问题,请创建帮助票并告诉他们您的应用中存在 IE 延迟,并且您认为这是由于最近的 ELB 更新造成的。他们可以为您的应用程序部署 ELB 更新,这就是他们最终为我们所做的事情,并且最终将为所有 Heroku 应用程序所做的事情。

关于jquery - Heroku SSL Rails 应用程序中的 MSIE $.ajax 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com