【问题标题】:Can I assume gzip compression for my js files?我可以为我的 js 文件假设 gzip 压缩吗?
【发布时间】:2013-09-29 18:12:01
【问题描述】:

过去,我一直在编写这样的代码来减小我的 JavaScript 文件的大小(出于问题的目的,这里只是夸大了):

var u="http://mySite.com/TeamNumber",
    e=".jpg",
    t="team",
    image=i={};
i[t+1]=u+"One/team1"+e;
i[t+2]=u+"Two/team2"+e; 
i[t+3]=u+"Three/team3"+e;

现在,如果我理解正确的话,如果 http 传输使用 gzip 压缩,这几乎没有用,因为无论如何都会压缩重复的文本。

我是否正确假设所有服务器/浏览器现在都依赖 gzip 压缩,并且下面的脚本(在纸上大 10%)实际上与上面的脚本具有相同的传输大小:

var urlRoot="http://mySite.com/";
var images={
    team1: urlRoot + "TeamNumberOne/team1.jpg",
    team2: urlRoot + "TeamNumberTwo/team2.jpg",
    team3: urlRoot + "TeamNumberThree/team3.jpg"
};

请注意,我的问题与文件压缩有关,而不是缩小。

【问题讨论】:

    标签: javascript performance http gzip


    【解决方案1】:

    实验通常是更容易判断的方法:你的第一个 sn-p 代码在 gzip 压缩时是 132 字节,第二个是 138 字节。几乎没有明显的区别。

    最后,这样写代码真的不值得,因为它很难读。

    您实际上在做两件事,您应该将它们留给适当的工具:

    • 减少重复。让其自行压缩。
    • 使用短标识符。把它留给一个缩小器。

    请注意,减少重复通常是一件好事,但当您使用 team+1 编写 "team1" 时当然​​不是这样,这会使标识符“不可grep-able”。

    【讨论】:

    • 嗯,这就是我的问题的重点:我真的想把它留给压缩,但在实践中我怎么能确定是这样呢?我的例子被简化了,在现实生活中我可以有更长的字符串,例如 ajax 标头或命名空间。
    猜你喜欢
    • 2010-11-29
    • 2012-01-02
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多