规则10 精简JavaScript
1. 精简和混淆
精简是从代码中移除不必要的字符以减小其大小,进而改善加载时间的实践;
混淆也会移除注释和空白,同时它还会改写代码,函数和变量的名字将被转换为更短的字符串;(可能引入错误,维护麻烦,调试困难)
精简有工具JSMin(有很多语言版本),混淆有工具DojoCompressor(改名为ShrinkSafe);
内联脚本也应该精简,而且比外部文件简单,可以直接用后端语言版本的JSMin集成。
2. 压缩和精简
压缩比精简节省更多,精简后压缩和混淆后压缩性能差别不大,但精简不具有混淆带来的风险,所以建议精简后压缩。
3. 精简CSS
CSS中的注释和空白比JavaScript少,精简带来的节省不多;
最大的节省来自优化CSS——合并相同的类、移除不用的类等。CSS的依赖顺序的本质使得这个问题很复杂。现在最佳的解决方案还是移除注释和空白,并进行一些直观的优化("#606" 代替"#660066"),使用缩写和移除不必要的字符("0" 代替 "0px")。