政协网站建设方案,网页源代码搜索关键字,电影网页设计尺寸,湖州建设网站制作如何对Javascript代码进行二次压缩#xff08;混淆#xff09; 对Javascript代码进行压缩#xff08;混淆#xff09;#xff0c;可以有效减少传输和加载时间。但是#xff0c;不是所有的变量#xff08;方法#xff09;都能被混淆的#xff0c;一般来说#xff0c;只…如何对Javascript代码进行二次压缩混淆 对Javascript代码进行压缩混淆可以有效减少传输和加载时间。但是不是所有的变量方法都能被混淆的一般来说只有非属性的变量方法可以被混淆而属性的变量方法就不行了。我们自己是知道这些属性方法是不会被外部访问和修改的所以可以很放心地对其进行二次混淆。那么如何自己定义混淆规则并进行二次混淆呢 首先页面上至少要用一个输入框和一个按钮。我这里设置有2个输入框分别加上“uncompress”和“compress”两个类表示为压缩和已压缩的。点击按钮就开始压缩。 然后自定义混淆规则把压缩前和压缩后的字符串分别存在两个数组里面然后使用replace方法进行替换就可以了。代码如下 var beforeArr [addUniqueClass, longValue, IDontKnowWhatIsIt],afterArr [au, lv, idk];
$(button).on(click, function() {var value $(.uncompressed).val();var length beforeArr.length;for(var i 0; i length; i ) {value value.replace(beforeArr[i], afterArr[i]);}$(.compressed).val(value);
}); 好了当我们用这个方法去压缩代码后觉得不放心看看是不是确实都替换了。在代码里面搜一搜有没有压缩前的字符串发现还真有这是怎么回事原来当我们只是用字符串替换字符串时是只能替换一次的如果后面还有就无法继续替换了。不过正则表达式里面有全局替换的功能所以把字符串转换成全局的正则表达式就可以了。 $(button).on(click, function() {var value $(.uncompressed).val();var length beforeArr.length;for(var i 0; i length; i ) {var exg new RegExp(beforeArr[i], g);value value.replace(exg, afterArr[i]);}$(.compressed).val(value);
});这下代码里面就搜不到压缩前的字符串了。 但还有一点不满意就是维护性差了些如果添加新的规则还好办如果要修改或删除原有规则那就没那么容易一一对应了。所以要做成映射关系比较直观的数组像这样 var Arr [addUniqueClass → au,longValue → lv, IDontKnowWhatIsIt → idk
];这样看起来就直观多了剩下的只是把箭头两侧的字符串分别存在两个数组里面就可以了。 另外为了避免像$这样的符号无法被识别出来可以在正则表达式前面加上\\。 完整代码如下 var Arr [addUniqueClass → au,longValue → lv, IDontKnowWhatIsIt → idk
],beforeArr [],afterArr [],arrLength Arr.length;
for(var i 0; i ArrLength; i ){var value arr[i].split(→)[0].trim();beforeArr.push(value);value arr[i].split(→)[1].trim();afterArr.push(value);
}$(button).on(click, function() {var value $(.uncompressed).val();var length beforeArr.length;for(var i 0; i length; i ) {var exg new RegExp(\\ beforeArr[i], g);value value.replace(exg, afterArr[i]);}$(.compressed).val(value);
});转载于:https://www.cnblogs.com/linzb1993/p/5949281.html