IE6因* server *配置而冻结
我们的网站(运行Rails)几乎每次都冻结IE6. 部署在不同服务器上的相同代码不会冻结IE6. 我们应该在哪里以及如何开始追踪呢?
解决方案
结合使用Firefox和Firebug,比较两个服务器的"请求"和"响应"中的HTTP标头。
- 可能是沟通问题。尝试对冻结的服务器和不冻结的服务器进行wireshark。比较结果以查看是否存在差异。
- 缩小问题范围。开始剪切代码,直到IE6不冻结为止。这样一来,我们便可以准确找出导致问题的原因。
在不同计算机上的IE6中尝试两种方法,最好使用尽可能少的插件,例如间谍软件阻止程序或者Google工具栏...
我们也可以尝试:http://projects.nikhilk.net/WebDevHelper/Default.aspx
该安装在IE中,可以解决网络问题等。通过使用其跟踪功能,我们也许可以准确地看到它冻结在请求/响应中的时间和位置。
冻结是发生在开发服务器还是生产服务器上?无论开发人员服务器是否锁定IE6,这都没什么大不了的,但是,如果生产服务器无法杀死IE6,我们可能会遇到问题!
:-P
我们需要确定它们之间的区别,所以我将从以下内容开始:
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
我今天在AJAX繁重的网站上遇到了这个问题。我认为我已将问题缩小到启用了GZIP压缩的服务器上。当在我们的服务器上关闭GZIP时,IE6完全没有冻结地加载了该页面。开启GZIP时,IE6会完全冻结/崩溃。
我还注意到,正在使用我们服务器上的GZIP来提供图片,因此我禁用了图片,这解决了IE6冻结/崩溃的问题。现在,服务器仅将GZIP用于.js,.html和JSON。
也许一些更多的信息将对我们有所帮助。
我们遇到了同样的问题,并将其范围缩小到了GZIP压缩。关键是我们在ScriptResources上启用了gzip压缩,它还提供了.NET页面中控件所使用的javascript。
显然,IE6中存在一个导致冻结的错误,我们认为浏览器会在解压缩文件之前将文件接收并解析,从而导致冻结。
目前,我们已经关闭了gzip压缩,但是由于我们通过ScriptsResource管理器提供了大量文件,因此我们需要一个不同的解决方案。