JQuery memiliki dua versi untuk diunduh, satu Produksi (19KB, Minified dan Gzip) , dan yang lainnya Pengembangan (120KB, Kode Tidak Terkompresi) .
Sekarang versi kompak 19kb, jika Anda mendownloadnya, Anda akan melihat kode javascript yang dapat dieksekusi. Bagaimana mereka memadatkannya? Dan bagaimana saya bisa 'mengecilkan' kode saya seperti itu juga?
javascript
gzip
KalEl
sumber
sumber
Jawaban:
Minifikasi DIY
Tidak ada penambang yang dapat mengompresi kode buruk dengan benar.
Dalam contoh ini saya hanya ingin menunjukkan seberapa banyak minifier dapat bekerja.
Apa yang harus Anda lakukan sebelum mengecilkan
Dan mengenai jQuery ... saya tidak menggunakan jQuery.jQuery untuk browser lama, itu dibuat untuk alasan kompatibilitas .. periksa caniuse.com, hampir semuanya berfungsi di setiap browser (juga ie10 sudah distandarisasi sekarang), saya rasa sekarang sudah hanya di sini untuk memperlambat aplikasi web Anda ... jika Anda suka,
$()
Anda harus membuat fungsi sederhana Anda sendiri. Dan mengapa repot-repot mengompres kode Anda jika klien Anda perlu mengunduh skrip jquery 100kb setiap kali? seberapa besar kode Anda yang tidak terkompresi? 5-6kb ..? Belum lagi banyak plugin yang Anda tambahkan untuk membuatnya lebih mudah.Kode Asli
Ketika Anda menulis fungsi, Anda memiliki ide, mulailah menulis sesuatu dan terkadang Anda berakhir dengan sesuatu seperti kode berikut. Kode berfungsi Sekarang kebanyakan orang berhenti berpikir dan menambahkan ini ke minifier dan menerbitkannya.
Ini adalah kode minified (saya menambahkan baris baru)
Diperkecil menggunakan ( http://javascript-minifier.com/ )
Tetapi apakah semua vars, if, loop & definisi itu diperlukan?
Sebagian besar waktu TIDAK !
OPSIONAL (meningkatkan kinerja & kode yang lebih pendek)
Math
)while
,for
... tidakforEach
)"{}","()",";",spaces,newlines
Sekarang jika penambang dapat memampatkan kode Anda melakukannya dengan salah.
Tidak ada penambang yang dapat mengompresi kode buruk dengan benar.
DIY
Ini persis sama dengan kode di atas.
Performa
http://jsperf.com/diyminify
Anda selalu perlu memikirkan apa yang Anda butuhkan:
Sebelum Anda mengatakan "Tidak ada yang akan menulis kode seperti di bawah ini" buka dan periksa 10 pertanyaan pertama di sini ...
Berikut beberapa contoh umum yang saya lihat setiap sepuluh menit.
Ingin kondisi yang dapat digunakan kembali
Waspada ya hanya jika ada
Waspada ya atau tidak
Mengonversi angka menjadi string atau sebaliknya
Membulatkan angka
Memberi nomor lantai
kasus saklar
coba tangkap
lebih jika
tapi
indexOf
lambat baca https://stackoverflow.com/a/30335438/2450730 ininomor
Beberapa artikel / situs bagus yang saya temukan tentang bitwise / steno:
http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/
http://www.140byt.es/
http://www.jquery4u.com/javascript/shorthand-javascript-techniques/
Ada juga banyak situs jsperf yang menampilkan performa steno & bitwsie jika Anda mencari dengan mesin pencari favorit Anda.
Saya bisa pergi satu jam .. tapi saya pikir itu cukup untuk saat ini.
jika Anda memiliki beberapa pertanyaan, tanyakan saja.
Dan ingatlah
Tidak ada penambang yang dapat mengompresi kode buruk dengan benar.
sumber
(10.4899845 +.5)|0
menghasilkan 10 bukan 11.Anda dapat menggunakan salah satu dari banyak minifier javascript yang tersedia.
sumber
Google baru saja menyediakan kompiler javascript yang dapat mengecilkan kode Anda, menghilangkan cabang kode mati dan lebih banyak pengoptimalan.
kompiler javascript google
Salam
K
sumber
Bersamaan dengan mengecilkan Anda dapat menyandikannya juga base64. Itu membuat file Anda jauh lebih terkompresi. Saya yakin Anda telah melihat file js yang dibungkus di dalam fungsi eval () dengan parameter (p, a, c, k, e, r) berlalu. Saya membacanya di artikel ini Bagaimana Cara Meminimalkan File Javascript?
sumber
Saya telah menulis skrip kecil yang memanggil API untuk mengecilkan skrip Anda, periksa:
Pemakaian:
sumber
Saya baru-baru ini perlu melakukan tugas yang sama. Sementara kompresor yang terdaftar di The JavaScript CompressorRater melakukan pekerjaan yang baik dan alat ini sangat berguna, kompresor tidak bekerja dengan baik dengan beberapa kode jQuery yang saya gunakan (pemeriksaan $ .getScript dan jQuery.fn). Bahkan Kompresor Penutupan Google tersedak di jalur yang sama. Sementara saya akhirnya bisa menyelesaikan kekusutan, itu terlalu banyak menyipitkan mata untuk dilakukan terus-menerus.
Yang akhirnya bekerja tanpa masalah adalah UglifyJS (terima kasih @ Aries51 ), dan kompresinya hanya sedikit kurang dari yang lainnya. Dan mirip dengan Google, ia memiliki API HTTP. Packer juga bagus dan memiliki implementasi bahasa di Perl, PHP, dan .NET.
sumber
Saat ini ada 2 cara untuk meminimalkan kode Anda:
http://yui.github.io/yuicompressor/
Banyak alat seperti itu tersedia untuk Node dan npm juga - praktik yang baik adalah mengotomatiskan mnifikasi Javascript dengan Grunt.
http://www.modify-anything.com/
sumber
Anda dapat menggunakan javascript minifier dari ubercompute.com untuk mengecilkan kode Anda, Ini akan meminimalkan kode javascript Anda hingga 75% dari versi aslinya.
sumber