Home >Web Front-end >JS Tutorial >JavaScript analysis and compression tool JavaScript Analyser_javascript skills

JavaScript analysis and compression tool JavaScript Analyser_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:22:351272browse

The JSA compression process is divided into two steps

The first step is syntax compression, which is similar to Dojo ShrinkSafe, but safer and more effective.

The second step is text compression, currently using
Compression algorithm of JavaScript Compressor.
(http://dean.edwards.name/packer/ )

These can be set in the settings window.
By default, syntax compression is used first. When the file is larger than 1000 bytes and can still be compressed to 90% of the original size using text compression, text compression is used on the original basis.

The following is a script compression example to demonstrate the JSA syntax compression and optimization functions.

Copy code The code is as follows:

try {
//xxxx();
}
catch (e) {
yyyy();
function f1() {
}
}
finally {
zzzz();
}
function f2(var1) {
var var2 = 2;
var var3 = 3;
var withObject = {var2:-2}
with(withObject){
alert(var2);
}
}

Compressed results (formatted for easy reference):

Copy code The code is as follows:

zzzz();
function f2(A) {
var var2 = 2;
var B = 3;
var C = {var2:-2};
with (C) {
alert(var2);
}
}

Compression ratio comparison with other compression tools:

1. JavaScript Compressor(http:// dean.edwards.name/packer/)
Taking his own compression tool code as an example (v2.02), the size after packer compression is 7,428 bytes (comments removed).
​ And our compression tool can compress to 7,256 bytes
7256 / 7428 = 0.9768443726440496
2.Dojo ShrinkSafe (rough stuff, inefficient and dangerous, it is recommended that original users replace it quickly)
With his own framework source code as an example (v0.4.1):
His own compressed size is 149,518 bytes, but we can reduce it to 81,261 bytes after compression
81261 / 149518 = 0.5434864029748927

Safety Instructions:

1.JavaScript Compressor

Text-based compression, I haven’t looked into the logic in detail, but the possibility of problems with this kind of compression is very low. Our compression tool also uses its compression algorithm, which is used in JSI 1.1 a8 and
No abnormalities were found in the test of its integrated third-party class library. Moreover, the well-known framework JQuery is used, so I believe there will be no problems.

Additional (2007-03-12): Today I discovered that this tool has a bug when parsing JavaScript multi-line string syntax. However, this problem will no longer exist after JSA syntax compression.

2.Dojo ShrinkSafe Danger! ! ! ! !

Replace long local variable names with shorter names. This is an extremely unsafe compression tool. For example:

Copy code The code is as follows:

function(){
var withObject = {variable1:1}
var variable1 = 2;
with(withObject){
alert(variable1);
}
}

will be compressed into:

Copy code The code is as follows:

function(){
var _1={variable1:1};
var _2=2;
with(_1){
alert(_2);
}
}

This is obviously wrong. This garbage does not pay attention to some special syntax and dynamics of JavaScript.
The eval function, catch operation, and with statement are not processed in any way.
In comparison, JSA is currently the safest and most effective compression tool I know of.
JSA not only provides code compression function, but also can do formatting and script analysis.

The script analysis function can be used to view script information and find potential problems in the script.
For example, check which functions and variables are declared in the script.
Which external variables are used. etc. . .

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn