代码之家  ›  专栏  ›  技术社区  ›  rjzii

JavaScript压缩库使用什么技术来最小化文件大小?

  •  1
  • rjzii  · 技术社区  · 15 年前

    JavaScript Compression ?

    4 回复  |  直到 13 年前
        1
  •  1
  •   Dan Lew    15 年前

    从我的头顶上。。。

    • 标记局部变量,然后将其重命名为最小大小的变量。
    • 删除大量空白。
    • 删除不必要的大括号(例如,if语句后的单行执行可以删除大括号并添加一个分号)。
    • 删除不必要的分号(例如,在结束大括号“}”之前)。

    我最常用的迷你们是 YUI Compressor as they state

        2
  •  1
  •   TheHippo    15 年前

    大多数压缩机使用不同技术的组合:

    • 用压缩算法压缩文件(gzip,deflate)
    • 将所有内部变量和函数重命名为较短的名称可以节省大部分空间,例如:

    function func (variable) {
      var temp = 2 * variable;
      return temp;
    }
    

    将成为:

    function func (a) {
      var b = 2 * a;
      return b;
    }
    
    • 迪安·爱德华兹 packer 使用一些内部压缩。当脚本加载到页面上时,将对其进行解压缩。
      • 删除未使用的代码
      • 函数内联
        3
  •  0
  •   Shay Erlichmen    15 年前

    代码重命名和重新排序,以便gzip压缩器将获得更好的结果。

    原始代码:

    function mul(mul1, mul2)
    {
     return mul1 * mul2;
    }
    
    function print(str)
    {
      // do something 
    }
    
    function add(add1, add2)
    {
     return add1 + add2;
    }
    

    function mul(a,b)
    {
     return a * b;
    }
    
    function add(a, b)
    {
     return a + b;
    }
    
    function print(str)
    {
      // do something 
    }
    
        4
  •  0
  •   Jonathan Leffler Toon Krijthe    13 年前

    我可以列举一些在Google Web Toolkit编译器中找到的:

    • 方法调用的内联
    • 变量重命名/源混淆
      • 这意味着将长变量重写为短变量等等

    几乎所有这些都需要Javascript解析(即它们的工作超出了纯粹的词法分析)。