IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

IE6中javascript文件开启Gzip出现代码不执行情况

三水清 2011-11-16 23:43:57 累计浏览 2,564 次
本机暂存

    今天处理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的状况如下:

  • 用户使用IE6浏览器
  • 服务器没有设置 被请求文件(javascript) expires, cache-control.
  • 服务器端开启了chunked encoding模式
  • 通过javascrip的src调用方式或者ajax请求javascript文件
  • 有可能是通过php生成的javascript文件
  • 服务器端开启了gzip压缩
  •     解决这个问题,我们要在服务器的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

        分析上面的头信息,我们可以注意到:

  • cache-control必须要设置成maxage=time的格式,maxage是指定缓存生效时间,1为1秒
  • Expires必须要设置,它的时间稍大于Date即可,Date是页面请求时间,Expires是过期时间
  • Pragma设置为public
  •      设置好了这两个参数,一般就可以了。

        在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头,更是得不偿失。

    同分类推荐文章

    1. translateZ() (2026-06-25 21:18:56)
    2. translateY() (2026-06-25 21:17:56)
    3. translateX() (2026-06-25 21:16:01)

    查看更多 前端 文章 →

    建议继续学习

    1. JQuery实现Excel表格呈现 (累计阅读 48,350)
    2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
    3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
    4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,849)
    5. 天朝第二代身份证号码的验证机制 (累计阅读 14,762)
    6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
    7. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
    8. 什么是全栈工程师? (累计阅读 14,038)
    9. 使用python爬虫抓站的一些技巧总结:进阶篇 (累计阅读 13,302)
    10. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)