Proses kompresi JSA dibagi menjadi dua langkah
Langkah pertama adalah kompresi sintaks, mirip dengan dojo shrinksafe, tetapi lebih aman dari itu dan lebih efisien.
Langkah kedua adalah kompresi teks, saat ini
Algoritma kompresi kompresor JavaScript.
(http://dean.edwards.name/packer/)
Ini dapat diatur di jendela Pengaturan.
Secara default, kompresi sintaks pertama kali digunakan. Kompresi teks digunakan secara asli ketika file lebih besar dari 1000byte dan kompresi teks masih dapat dikompres hingga 90% dari ukuran aslinya.
Berikut adalah contoh kompresi skrip untuk menunjukkan fungsi kompresi sintaks JSA dan optimisasi.
Salinan kode adalah sebagai berikut:
mencoba {
// xxxx ();
}
Catch (e) {
yyyy ();
fungsi f1 () {
}
}
Akhirnya {
zzzz ();
}
fungsi f2 (var1) {
var var2 = 2;
var var3 = 3;
var withObject = {var2: -2}
dengan (withObject) {
peringatan (var2);
}
}
Hasil terkompresi (diformat untuk akses mudah):
Salinan kode adalah sebagai berikut:
zzzz ();
fungsi f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2: -2};
dengan (c) {
peringatan (var2);
}
}
Perbandingan dengan alat kompresi lainnya untuk rasio kompresi:
1. JavaScript kompresor (http://dean.edwards.name/packer/)
Dengan kode alat kompresi sendiri sebagai contoh (v2.02) packer dikompresi dengan ukuran 7.428 byte (hapus komentar).
Dan alat kompresi kami dapat dikompresi hingga 7.256 byte
7256 /7428 = 0,9768443726440496
2.dojo shrinksafe (hal -hal kasar keduanya tidak efisien dan berbahaya. Dianjurkan agar pengguna asli mengubahnya sesegera mungkin)
Dengan kode sumber kerangka kerja sendiri sebagai contoh (v0.4.1):
Ini mengompres ukuran menjadi 149.518 byte dengan sendirinya, dan kita dapat mengecilkannya menjadi 81.261 byte setelah kompresi
81261 /149518 = 0,5434864029748927
Instruksi Keselamatan:
1. Kompresor JavaScript
Berdasarkan kompresi teks, saya tidak melihat logika di dalamnya dengan hati -hati, tetapi kemungkinan masalah kompresi ini sangat rendah. Alat kompresi kami juga menggunakan algoritma kompresi, dalam JSI 1.1 A8 dan
Tidak ada pengecualian yang ditemukan dalam pengujian perpustakaan pihak ketiga yang terintegrasi. Dan ada juga kerangka kerja yang terkenal, jadi saya percaya tidak akan ada masalah.
Suplemen (2007-03-12): Hari ini saya menemukan bahwa benda ini memiliki bug saat menganalisis sintaks string multi-line JavaScript. Namun, masalah ini tidak akan ada lagi setelah dikompresi oleh sintaks JSA.
2.Dojo Shrinksafe Berbahaya! Lai Lai Lai Lai
Ganti nama variabel lokal yang panjang dengan nama yang lebih pendek, yang merupakan alat kompresi yang sangat tidak aman, misalnya:
Salinan kode adalah sebagai berikut:
fungsi(){
var withObject = {variable1: 1}
variabel var1 = 2;
dengan (withObject) {
peringatan (variabel1);
}
}
Kompres ke:
Salinan kode adalah sebagai berikut:
fungsi(){
var _1 = {variable1: 1};
var _2 = 2;
dengan (_1) {
peringatan (_2);
}
}
Ini jelas salah, sampah ini tidak memperhatikan beberapa sintaks khusus, dan dinamika JavaScript.
Tidak ada pemrosesan yang dilakukan untuk fungsi evaluasi, menangkap operasi, dan dengan pernyataan.
Sebaliknya, JSA adalah alat kompresi teraman dan paling efektif yang saya tahu saat ini.
JSA tidak hanya menyediakan fungsi kompresi kode, tetapi juga dapat digunakan untuk memformat dan analisis skrip.
Analisis skrip dapat digunakan untuk melihat informasi skrip dan menemukan masalah potensial dalam skrip.
Misalnya, periksa fungsi dan variabel yang dinyatakan dalam skrip.
Variabel eksternal itu digunakan. dll. . .