Setelah membaca pertanyaan lain tentang JQuery dan CDN, apakah layak untuk alat seperti JQuery untuk "datang dengan" browser, sehingga mengurangi / menghilangkan kebutuhan untuk unduhan pertama dari CDN, atau dari server host Anda sendiri.
File JQuery secara khusus cukup kecil, sehingga Anda dapat dengan mudah memiliki nomor (semua?) Dari versi yang berbeda sebagai bagian dari pemasangan browser. Sekarang cukup adil, ini akan meningkatkan jejak instalasi, waktu pengunduhan untuk browser itu sendiri.
Kemudian situs dapat memeriksa "lokal" terlebih dahulu, sebelum CDN (yang kemudian di-cache), sebelum akhirnya default untuk mengunduh dari server situs web itu sendiri.
Jika ini layak, apakah sudah dilakukan, dan jika tidak, mengapa belum dilakukan?
sumber
Array.prototype.forEach
,Array.prototype.indexOf
,Object.create
Merupakan contoh kode yang mendapat dibundel ke dalam mesin JavaScript itu sendiri.Jawaban:
Tidak ada alasan teknologi mengapa mereka tidak bisa. Namun, itu tidak perlu dan itu bertentangan dengan filosofi dasar web. Itu tidak perlu, karena Anda dapat mencapai hal yang hampir sama dengan header masa depan yang jauh kedaluwarsa. Ini bertentangan dengan filosofi web karena menyebabkan ada otoritas top-down, terpusat di mana perpustakaan harus / tidak boleh dibundel dengan browser.
Sunting: Pustaka JS ada, terutama, untuk membuat berurusan dengan DOM lebih mudah. Saya tidak berpikir bundling perpustakaan pihak ketiga dengan browser adalah cara yang tepat untuk membuat DOM API lebih menyenangkan.
sumber
Sebenarnya, apa yang Anda gambarkan sudah ada selama bertahun-tahun. Ini disebut caching . Dan itu tersedia tidak hanya untuk JQuery, tetapi untuk semua peramban Anda dapat mengunduh.
Inilah yang dilakukan oleh setiap browser. Ia memeriksa cache lokal terlebih dahulu, kemudian mengunduh satu dari CDN jika perlu. Dengan konfigurasi cache yang tepat, bahkan tidak ada bolak-balik ke server (untuk memeriksa versi yang lebih baru) selama berbulan-bulan.
Termasuk JQuery ke dalam pengaturan browser akan:
Tambahkan kompleksitas yang tidak perlu ke aplikasi dan pengaturan browser,
Tambahkan kompleksitas yang tidak perlu untuk memperbarui proses,
Tingkatkan jumlah pembaruan untuk menjaga versi JQuery yang terbaru, bahkan untuk orang yang tidak membutuhkannya,
Tambahkan kebingungan: mengapa JQuery dan bukan Prototipe, atau kerangka kerja lain, gambar, file CSS, dll?
dll.
Meningkatkan kompleksitas produk perangkat lunak tanpa manfaat dalam hal fitur, kinerja, dll. Adalah ide yang sangat buruk.
sumber
Jangan lupa bahwa jQuery adalah perpustakaan js, tampaknya telah menjadi de facto dan dipandang sebagai obat mujarab (sampai-sampai menjadi patut diingat pada SO), tetapi itu hanya perpustakaan js.
Segala sesuatu yang terstandarisasi untuk skrip (EMCAScript) sudah termasuk dalam browser, apa pun yang ditambahkan ke browser lain akan menjadi non-standar dan Anda akan berakhir dengan masalah lintas browser untuk browser non-standar (seperti model acara IE ) yang memengaruhi sebagian alasan mengapa perpustakaan seperti jQuery telah dibuat sejak awal.
Jawaban singkat: mereka bisa dimasukkan, tetapi seharusnya tidak.
sumber
Caching peramban menyediakan sesuatu yang sangat mirip dengan apa yang Anda bicarakan. Seharusnya jQuery atau perpustakaan JS lainnya akan diunduh satu kali dan kemudian diambil dari cache pada permintaan lebih lanjut.
Walaupun jQuery mungkin adalah pustaka JavaScript yang paling banyak ditemukan di mana-mana, jQuery bukan satu-satunya dan menurut saya membuatnya menjadi komponen browser yang terinstal akan berdampak buruk bagi ekosistem JS. Persaingan sehat dan umumnya mengarah pada inovasi, dan kami para pengembang dan pengguna perangkat lunak tidak akan terlayani dengan baik dengan memberikan posisi khusus pada jQuery.
Setelah Anda memperhitungkan caching, keuntungan yang Anda peroleh sangat, sangat minim. Versi jQuery yang diperkecil hanya 31K. Itu bukan alasan untuk mengubah apa pun .
sumber