压缩JavaScript,使其减小20%
程序员文章站
2024-02-24 16:39:16
...
Ray Cromwell有一篇很棒的文章(请自备爬墙梯),使用JavaScript压缩技术来降低Ajax应用的加载负荷。
JavaScript使用“binary as source”可以带来很多不错的优势,但是也面临着一些问题,我们必须在冗长的代码中进行取舍…这也是Google Web Toolkit在做的事情。Ray为我们带来了相对智能的压缩方式:
引用
结合base-54/base-64模糊标识符编码;稳定sort-order,以便标识符的分配;使用clustering-by-edit-distance排序算法;将7-zip作为一个gzip-compatible压缩器。令人难以置信的是,展示的应用程序大小减少了21%;在一个500k的大型JavaScript应用中,这意味着将会减少100k甚至更多带宽,而且性能没有任何损失。
文章主要谈到了一些基本的压缩,还有滑动窗口技术:
引用
deflate算法包含两个压缩算法: LZ77 和 Huffman coding。
LZ77其实也是一种滑动窗口的压缩算法,使用先前的参考来替代正在输入的字符串。例如字符串“this is a test”,有两个“is”,使用一个空格隔开,因此第二次输入“is”时,将会改为长度(2个字符,backwards distance (-3 )),被称为length-distance pair(长度距离对)。压缩器会寻找匹配,然后再编译这些长度距离对。但是如果两个Javascript函数相同的字符串超过这个距离,他们就无法匹配了!
点击查看更多详情:http://timepedia.blogspot.com/2009/08/on-reducing-size-of-compressed.html
推荐阅读