【发布时间】:2012-11-16 15:50:49
【问题描述】:
我很想了解像 yui-compressor 这样的压缩器在压缩 js 或 css 文件时所做的一切,如果我想编写自己的压缩器,我需要采取哪些步骤。
【问题讨论】:
标签: javascript css yui-compressor
我很想了解像 yui-compressor 这样的压缩器在压缩 js 或 css 文件时所做的一切,如果我想编写自己的压缩器,我需要采取哪些步骤。
【问题讨论】:
标签: javascript css yui-compressor
YUI 压缩器是用 Java 编写的(需要 Java >= 1.4)并且 依赖 Rhino 来标记源 JavaScript 文件。它开始于 分析源 JavaScript 文件以了解其内容 结构化的。然后它打印出令牌流,省略尽可能多的 尽可能使用空格字符,并将所有本地符号替换为 一个 1(或 2,或 3)个字母符号,只要有这样的替换 适当的(面对诸如 eval 或 with 之类的邪恶特征, YUI Compressor 通过不混淆任何 包含 evil 语句的范围)CSS 压缩 算法使用一组微调的正则表达式来压缩 源 CSS 文件。 YUI Compressor 是开源的,所以不要 犹豫查看代码以了解其工作原理。
【讨论】:
来自官方文档网站
" YUI 压缩器是如何工作的? YUI 压缩器是用 Java 编写的(需要 Java >= 1.4)并依赖 Rhino 来标记源 JavaScript 文件。它首先分析源 JavaScript 文件以了解其结构。然后它打印出令牌流,尽可能多地省略空白字符,并在适当的替换处用 1(或 2 或 3)字母符号替换所有本地符号(面对诸如 eval 之类的邪恶功能或者,YUI Compressor 采取防御方法,不混淆任何包含 evil 语句的作用域) CSS 压缩算法使用一组经过微调的正则表达式来压缩源 CSS 文件。 YUI Compressor 是开源的,因此请不要犹豫,查看代码以了解其工作原理。”
【讨论】:
据我所知,这些是主要步骤:
对于 JS
编辑:最简单的方法就是创建一个 CSS 和 JS 并在压缩后查看差异。
【讨论】: