Rumah  >  Artikel  >  hujung hadapan web  >  Analisis JavaScript dan alat pemampatan JavaScript Analyser_javascript kemahiran

Analisis JavaScript dan alat pemampatan JavaScript Analyser_javascript kemahiran

WBOY
WBOYasal
2016-05-16 16:22:351204semak imbas

Proses pemampatan JSA terbahagi kepada dua langkah

Langkah pertama ialah pemampatan sintaks, yang serupa dengan Dojo ShrinkSafe, tetapi lebih selamat dan lebih berkesan.

Langkah kedua ialah pemampatan teks, sedang menggunakan
Algoritma pemampatan Pemampat JavaScript.
(http://dean.edwards.name/packer/ )

Ini boleh ditetapkan dalam tetingkap tetapan.
Secara lalai, pemampatan sintaks digunakan dahulu Apabila fail lebih besar daripada 1000 bait dan masih boleh dimampatkan kepada 90% daripada saiz asal menggunakan pemampatan teks, pemampatan teks digunakan pada asas asal.

Berikut ialah contoh pemampatan skrip untuk menunjukkan fungsi pemampatan dan pengoptimuman sintaks JSA.

Salin kod Kod adalah seperti berikut:

cuba {
//xxxx();
}
tangkap (e) {
yyyy();
fungsi f1() {
}
}
akhirnya {
zzzz();
}
fungsi f2(var1) {
var var2 = 2; var var3 = 3; var withObject = {var2:-2}
dengan(denganObjek){
makluman(var2); }
}



Hasil termampat (diformat untuk rujukan mudah):

fungsi f2(A) {
var var2 = 2; var B = 3; var C = {var2:-2}; dengan (C) {
makluman(var2); }
}



Perbandingan nisbah mampatan dengan alat mampatan lain:

1. Pemampat JavaScript(http:// dean.edwards.name/packer/)
Mengambil kod alat pemampatan sendiri sebagai contoh (v2.02), saiz selepas pemampatan pembungkus ialah 7,428 bait (komen dialih keluar).
Dan alat pemampatan kami boleh memampatkan kepada 7,256 bait
7256 / 7428 = 0.9768443726440496 2.Dojo ShrinkSafe (barangan kasar, tidak cekap dan berbahaya, disyorkan pengguna asal menggantikannya dengan cepat)

Dengan kod sumber rangka kerjanya sendiri sebagai contoh (v0.4.1):

Saiz mampatnya sendiri ialah 149,518 bait, tetapi kita boleh mengurangkannya kepada 81,261 bait selepas pemampatan

81261 / 149518 = 0.5434864029748927

Arahan Keselamatan:

1.JavaScript Compressor

Mampatan berasaskan teks, saya tidak melihat logik secara terperinci, tetapi kemungkinan masalah dengan jenis pemampatan ini adalah sangat rendah, alat pemampatan kami juga menggunakan algoritma pemampatannya, yang digunakan dalam JSI 1.1 a8 dan
Tiada kelainan ditemui dalam ujian perpustakaan kelas pihak ketiga bersepadunya. Selain itu, rangka kerja yang terkenal JQuery digunakan, jadi saya percaya tidak akan ada masalah.

Tambahan (2007-03-12): Hari ini saya mendapati bahawa alat ini mempunyai pepijat semasa menghuraikan sintaks rentetan berbilang baris JavaScript. Walau bagaimanapun, masalah ini tidak akan wujud lagi selepas pemampatan sintaks JSA.

2.Dojo ShrinkSafe Bahaya! ! ! ! !

Ganti nama pembolehubah tempatan yang panjang dengan nama yang lebih pendek Ini adalah alat pemampatan yang sangat tidak selamat

Salin kod

Kod adalah seperti berikut:


akan dimampatkan menjadi:





Salin kod
Kod adalah seperti berikut:

fungsi(){

var _1={pembolehubah1:1}; var _2=2; dengan(_1){ makluman(_2); } } Ini jelas salah. Sampah ini tidak memberi perhatian kepada beberapa sintaks khas dan dinamik JavaScript.
Fungsi eval, operasi tangkapan dan dengan pernyataan tidak diproses dalam apa jua cara.
Sebagai perbandingan, JSA pada masa ini ialah alat pemampatan paling selamat dan paling berkesan yang saya tahu.
JSA bukan sahaja menyediakan fungsi pemampatan kod, tetapi juga boleh melakukan pemformatan dan analisis skrip.

Fungsi analisis skrip boleh digunakan untuk melihat maklumat skrip dan mencari masalah yang berpotensi dalam skrip.
Sebagai contoh, semak fungsi dan pembolehubah yang diisytiharkan dalam skrip.
Pembolehubah luaran yang manakah digunakan. dll. . .
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn