IE6中javascript文件开启Gzip出现代码不执行情况
今天处理IE6下的一个bug,经过调试才发现是javascript文件文件总是执行不了,后来中午吃完饭回来才想起以前同事遇见的html中的javascript不可以执行的问题,怀疑是gzip的原因,此次的问题就是因为动态加载javascript文件导致代码不执行,经过研究发现gzip压缩过的javascript文件,如果header里Cache-Control 数据有no-cache, no-store,就会出现IE6中js代码不执行的问题。下面是转发的文章内容:
IE6下面调用开启了gzip压缩Javascript的时候,时常会碰到无法执行的情况,有可能是src调用,有可能是ajax调用,其它的浏览器工作正常,唯独IE6不能正常工作。
出现这个BUG的状况如下:
解决这个问题,我们要在服务器的cache-control和expires 头信息上做点工作。
经过测试,header头信息如下的gzip压缩过的javascript调用可以正常工作。
Cache-Control:maxage=1
Connection:keep-alive
Content-Encoding:gzip
Content-Type:application/x-javascript;charset=GBK
Date:Wed, 01 Dec 2010 01:24:07 GMT
Expires:Wed, 01 Dec 2010 01:24:08 GMT
Pragma:public
Server:nginx
Transfer-Encoding:chunked
分析上面的头信息,我们可以注意到:
设置好了这两个参数,一般就可以了。
在nginx服务器端,我们需要对服务器配置:
location ~* \\.(ico|css|js|png|jpeg|jpg|gif|rar|zip|7z|gz|pdf) {
expires 1d;
}
如果javascript文件是由PHP生成的,我们就需要利用php来输出header控制了。
实际应用中,需要灵活配置,Javascript文件,请尽可能通过服务器发送header头,PHP生成javascript文件,效率本来就不高,再加上额外需要输入header头,更是得不偿失。
建议继续学习:
- 使用.htaccess 开启gzip 缓存文件 网页 提高速度 (阅读:6285)
- 使用Gzip压缩网页 (阅读:3056)
- apache,php的gzip压缩功能 (阅读:2990)
- 用pigz代替gzip (阅读:2840)
- 如何让squid 2.6.STABLE21输出Content-Encoding: gzip (阅读:2735)
- 关于一个gzip压缩问题的定位解决 (阅读:2117)
- Nginx与Gzip请求 (阅读:1920)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:三水清 来源: 三水清
- 标签: gzip
- 发布时间:2011-11-16 23:43:57
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 图书馆的世界纪录
- [54] 如何拿下简短的域名
- [54] android 开发入门
- [52] Go Reflect 性能
- [52] Oracle MTS模式下 进程地址与会话信
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑