【发布时间】:2014-08-06 03:39:00
【问题描述】:
我们的网站(运行 Rails)几乎每次都会冻结 IE6。部署在不同服务器上的相同代码不会冻结 IE6。我们应该从哪里以及如何开始追踪这一点?
【问题讨论】:
-
可能一台服务器使用 GZIP 压缩。
标签: ruby-on-rails internet-explorer-6
我们的网站(运行 Rails)几乎每次都会冻结 IE6。部署在不同服务器上的相同代码不会冻结 IE6。我们应该从哪里以及如何开始追踪这一点?
【问题讨论】:
标签: ruby-on-rails internet-explorer-6
您需要确定它们之间的区别,所以我将从以下内容开始:
curl -D first.headers -o first.body http://first.example.com
curl -D second.headers -o second.body http://second.example.com
diff -u first.headers second.headers
diff -u first.body second.body
【讨论】:
可能是通信问题。针对冻结的服务器和未冻结的服务器尝试使用wireshark。比较结果,看看是否有差异。
缩小问题范围。开始剪切代码,直到 IE6 不冻结。然后,您也许能够准确找出导致问题的原因。
【讨论】:
我今天在一个使用 AJAX 的网站上遇到了这个问题。我想我已经将问题缩小到打开了 GZIP 压缩的服务器。当我们服务器上的 GZIP 关闭时,IE6 加载页面时完全没有冻结。当 GZIP 打开时,IE6 完全冻结/崩溃。
我还注意到我们的服务器使用 GZIP 提供图像,所以我为图像禁用了它,这解决了 IE6 冻结/崩溃的问题。现在服务器只对 .js、.html 和 JSON 使用 GZIP。
【讨论】:
在不同机器上的 IE6 中尝试两者,最好使用尽可能少的插件,例如间谍软件拦截器或 Google 工具栏...
【讨论】:
使用 Firefox 和 Firebug 比较来自两个服务器的请求和响应中的 HTTP 标头。
【讨论】:
你也可以试试:http://projects.nikhilk.net/WebDevHelper/Default.aspx
它安装在 IE 中,可以帮助您解决网络问题等问题。通过使用它的跟踪功能,您可以准确地看到它在请求/响应中冻结的时间和位置。
【讨论】:
冻结发生在您的开发服务器还是生产服务器上?天气你的开发服务器是否锁定 IE6 没什么大不了的,但如果你的生产服务器无法杀死 IE6,你可能会遇到问题!
:-P
【讨论】:
也许更多信息会对您有所帮助。
我们遇到了同样的问题,并将其范围缩小到 GZIP 压缩。关键是我们为 ScriptResources 启用了 gzip 压缩,它还提供了 .NET 页面中的控件使用的 javascript。
显然IE6中存在一个导致冻结的错误,我们认为浏览器接收文件并在解包之前对其进行解析,从而导致冻结。
目前我们已经关闭了 gzip 压缩,但是由于我们有大量通过 ScriptsResource 管理器提供的文件,我们需要一个不同的解决方案。
【讨论】: