JSA의 압축 과정은 두 단계로 나뉩니다.
첫 번째 단계는 Dojo Shrinksafe와 비슷한 구문 압축입니다.
두 번째 단계는 현재 텍스트 압축입니다
JavaScript 압축기 압축 알고리즘.
(http://dean.edwards.name/packer/)
설정 창에서 설정할 수 있습니다.
기본적으로 구문 압축이 먼저 사용됩니다. 텍스트 압축은 파일이 1000 바보보다 클 때 원래로 사용되며 텍스트 압축은 원래 크기의 90%로 압축 될 수 있습니다.
다음은 JSA 구문 압축 및 최적화 기능을 보여주는 스크립트 압축 예입니다.
코드 사본은 다음과 같습니다.
노력하다 {
// xxxx ();
}
캐치 (e) {
yyyy ();
함수 f1 () {
}
}
마지막으로 {
zzzz ();
}
함수 f2 (var1) {
var var2 = 2;
var var3 = 3;
var withobject = {var2 : -2}
with (withobject) {
경고 (var2);
}
}
압축 결과 (쉽게 액세스하기 위해 형식) :
코드 사본은 다음과 같습니다.
zzzz ();
함수 f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2 : -2};
(c) {
경고 (var2);
}
}
압축 비율을위한 다른 압축 도구와 비교 :
1. JavaScript Compressor (http://dean.edwards.name/packer/)
자신의 압축 도구 코드를 예로 들어 (v2.02) 크기 7,428 바이트 (주석 제거)로 압축 한 패커.
압축 도구는 7,256 바이트로 압축 할 수 있습니다.
7256 / 7428 = 0.9768443726440496
2. 도조 수축 (거친 것은 비효율적이고 위험합니다. 원래 사용자가 가능한 한 빨리 변경하는 것이 좋습니다)
자신의 프레임 워크 소스 코드를 예로 들어 (v0.4.1) :
크기를 149,518 바이트 자체로 압축하고 압축 후 81,261 바이트로 축소 할 수 있습니다.
81261 / 149518 = 0.5434864029748927
안전 지침 :
1. 자바 스크립트 압축기
텍스트 압축을 바탕으로 논리를주의 깊게 보지 못했지만이 압축 문제의 가능성은 매우 낮습니다. 압축 도구는 JSI 1.1 A8에서 압축 알고리즘을 사용합니다.
통합 된 타사 라이브러리 테스트에서는 예외가 발견되지 않았습니다. 그리고 잘 알려진 프레임 워크 jQuery도 있으므로 문제가 없을 것입니다.
Supplement (2007-03-12) : 오늘 나는 JavaScript 멀티 라인 문자열 구문을 분석 할 때 버그가 있음을 발견했습니다. 그러나 JSA 구문에 의해 압축 된 후에는이 문제가 더 이상 존재하지 않습니다.
2. 도조는 위험하다! ! ! ! !
긴 로컬 변수 이름을 짧은 이름으로 바꾸십시오. 예를 들어 매우 안전하지 않은 압축 도구입니다.
코드 사본은 다음과 같습니다.
기능(){
var withobject = {변수 1 : 1}
var 변수 1 = 2;
with (withobject) {
경고 (변수 1);
}
}
압축 :
코드 사본은 다음과 같습니다.
기능(){
var _1 = {변수 1 : 1};
var _2 = 2;
(_1) {
경고 (_2);
}
}
이것은 분명히 잘못된 것입니다.이 쓰레기는 특별한 구문과 JavaScript의 역학에주의를 기울이지 않습니다.
평가 함수, 작업을 잡기 및 진술과 함께 처리하지 않습니다.
대조적으로, JSA는 현재 내가 알고있는 가장 안전하고 효과적인 압축 도구입니다.
JSA는 코드 압축 기능을 제공 할뿐만 아니라 서식 및 스크립트 분석에도 사용될 수 있습니다.
스크립트 분석을 사용하여 스크립트 정보를보고 스크립트에서 잠재적 인 문제를 찾을 수 있습니다.
예를 들어, 스크립트에서 선언 된 함수와 변수를 확인하십시오.
이러한 외부 변수가 사용되었습니다. 등. . .