我们的网站(运行 Rails)几乎每次都会冻结 IE6。部署在不同服务器上的相同代码不会冻结 IE6。我们应该从哪里以及如何开始追踪它?
8 回答
您需要确定它们之间的区别,因此我将从以下内容开始:
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 管理器提供的文件,我们需要一个不同的解决方案。