涉及不可变属性的Javascript缩小逻辑
Javascript minification logic where immutable properties are involved
关于缩小逻辑的问题。
// Assumptions:
//com.example.dummy ns is available
//com.example.dummy.type is defined immutable -> Object.defineProperty
var test, test1, test2;
function execute_case(id) {
switch(id) {
case 0:
test = com.example.dummy.type;
break;
case 1:
test1 = com.example.dummy.type;
break;
case 2:
test2 = com.example.dummy.type;
break;
default:
console.log("default");
break;
}
}
YUI压缩机将其压缩为
var test,test1,test2;function execute_case(a){switch(a){case 0:
test=com.example.dummy.type;break;case 1:test1=com.example.dummy.type;break;
case 2:test2=com.example.dummy.type;break;default:console.log("default");break}};
压缩机进行以下优化不是合乎逻辑吗?
var test, test1, test2;
var st = com.example.dummy.type;
function execute_case(id) {
switch(id) {
case 0:
test = st;
case 1:
test1 = st;
break;
case 2:
test2 = st;
break;
default:
console.log("default");
break;
}
}
可以看出,这里的压缩效果更好。
var test,test1,test2;var st=com.example.dummy.type;function execute_case(a){
switch(a){case 0:test=st;case 1:test1=st;break;case 2:test2=st;break;
default:console.log("default");break}};
这种优化对于未压缩的源代码是有意义的,但如果文件是用gzip压缩(强烈建议使用)交付的,则没有意义。
字符串别名往往会使压缩的源代码变得更大。
请参阅Closure编译器常见问题
相关文章:
- YUI Compressor Maven Mojo缩小javascript的用法
- 如何在持续集成中捆绑和缩小javascript(jenkins)
- 在Visual Studio 2013中,如何在后期构建步骤中缩小Javascript和CSS
- 免费的应用程序来混淆和缩小JavaScript / PHP / HTML for Mac
- 在 MVC 服务器端代码中动态创建和缩小 JavaScript ASP.NET
- 在内存中以编程方式缩小 Javascript
- 缩小JavaScript函数
- 缩小Javascript代码和css代码的最佳应用程序
- Django - 缩小JavaScript文件
- 缩小javascript、jQuery和CSS文件的最佳方式是什么
- 使用YUI在.NET中缩小JavaScript
- 什么'如果您在服务器上启用Gzip,那么缩小JavaScript/CSS源代码的意义何在
- 我可以在Microsoft Visual Studio 2010中缩小JavaScript或aspx代码吗?
- 直接在函数中动态地缩小javascript
- 如果使用SBT 0.10或更高版本,如何缩小Javascript
- 如何自动缩小Javascript
- 如何在Visual Studio代码中缩小JavaScript文件
- 我应该在Greasemonkey或Chrome扩展的用户脚本中缩小javascript吗
- 防止nodejs在开发/调试时缩小javascript代码
- 如何缩小javascript文件生成的液体模板生成器