jQuery 4.0: Apa yang Sebenarnya Diubah oleh Keluaran Utama Pertama dalam Sedekad

Kemaskini terakhir: 01/22/2026
Pengarang C SourceTrail
  • jQuery 4.0 merupakan keluaran utama pertama dalam tempoh kira-kira 10 tahun, dilancarkan sekitar ulang tahun ke-20 perpustakaan dan memberi tumpuan kepada pemodenan dan bukannya ciri-ciri baharu yang mencolok mata.
  • Kemas kini ini menggugurkan sokongan untuk IE10 dan beberapa pelayar legasi, menyelaraskan peristiwa fokus dengan spesifikasi W3C dan memangkas API lama yang tidak digunakan dengan ketara.
  • Sumber jQuery telah beralih daripada modul AMD kepada modul ES dengan Rollup, meningkatkan pematuhan CSP dengan Trusted Types dan seterusnya mengecilkan binaan standard dan slim.
  • Walaupun JavaScript moden dan rangka kerja yang popular, jQuery masih digunakan secara meluas, dengan pendapat berpecah antara mereka yang melihatnya sebagai warisan dan mereka yang masih menghargai API ringkasnya.

Ilustrasi jQuery 4

Selepas hampir sedekad tanpa kemas kini utama, jQuery 4.0 menandakan lembaran baharu untuk salah satu pustaka JavaScript paling berpengaruh di web. Dijangkakan akan tiba sejurus selepas ulang tahun ke-20 John Resig melancarkan jQuery, keluaran ini bukan sahaja mengenai helah baharu yang menarik tetapi juga mengenai menanggalkan bagasi legasi dan menyelaraskan projek dengan cara kami sebenarnya membina untuk pelayar hari ini.

Daripada mencipta semula dirinya, jQuery 4 bertujuan untuk kekal relevan dengan memodenkan terasnya : menggugurkan sokongan untuk pelayar yang ketinggalan zaman, menerima pakai modul ES, meningkatkan keselamatan melalui Trusted Types dan membersihkan API yang telah lama tidak digunakan. Hasilnya ialah pustaka yang lebih ramping yang lebih sesuai secara semula jadi dengan perkakasan semasa, sambil masih cuba untuk tidak "memecahkan web" untuk sebilangan besar laman web yang bergantung padanya.

Keluaran utama selama sedekad dalam pembikinan

Lonjakan ke versi 4.0 merupakan lonjakan besar pertama sejak siri jQuery 3 , yang tiba selepas kitaran pembangunan yang panjang dengan beta dan pra-keluaran bermula pada awal tahun 2024. Pasukan itu menyifatkannya sebagai keluaran di mana mereka akhirnya melaksanakan perubahan yang mereka inginkan selama bertahun-tahun tetapi tidak dapat menghantar tampalan atau kemas kini kecil.

Di sebalik nombor versi terdapat peristiwa penting yang lebih luas: jQuery kini telah wujud selama kira-kira dua puluh tahunApabila John Resig mula memperkenalkan pustaka ini pada tahun 2006, bekerja dengan DOM merentasi pelayar seperti IE, Firefox dan Safari adalah mudah ralat dan membosankan. jQuery dengan cepat menjadi cara de facto untuk melicinkan ketidakkonsistenan tersebut, menjadikan pemilih seperti $("#myspan") terasa jauh lebih mudah didekati berbanding alternatif asli yang bertele-tele.

Kejayaan awal itu membentuk web. Menurut tinjauan teknologi yang telah lama dijalankan, jQuery masih terdapat di kebanyakan laman web yang mengisytiharkan pustaka JavaScript, walaupun rangka kerja yang lebih baharu seperti React, Vue, Angular atau Svelte telah menjadi tumpuan utama dalam banyak projek baharu.

Dengan penggunaan yang meluas sedemikian, para penyelenggara telah berulang kali menekankan bahawa mereka tidak boleh mengambil risiko merosakkan halaman sedia ada secara sambil lewa , terutamanya kerana banyak laman web memuatkan jQuery terus daripada CDN awam. Oleh itu, jQuery 4 berjalan mengikut garis panduan yang halus: ia memperkenalkan perubahan yang memecahbelahkan, tetapi direka bentuk supaya kebanyakan projek boleh dinaik taraf dengan pengubahsuaian terhad, dibantu oleh panduan naik taraf rasmi dan pemalam jQuery Migrate yang disegarkan.

Tamatnya jalan untuk IE10 dan pelayar legasi yang lain

Salah satu keputusan yang paling ketara dalam keluaran ini ialah Internet Explorer 10 dan yang lebih lama tidak lagi disokong . Langkah ini telah dijangkakan selama bertahun-tahun, tetapi jQuery 4 ialah versi yang akhirnya menyelesaikan masalah, mencerminkan betapa sedikitnya penggunaan yang dilihat oleh pelayar ini dalam analitik moden dan menggalakkan pasukan untuk mengesan penggunaan pelayar.

Kisah penamatan ini telah berperingkat: IE 11 masih berfungsi dengan jQuery 4 , tetapi pasukan telah menunjukkan bahawa ia akan digugurkan dalam jQuery 5. Ini memberi ruang kepada organisasi yang mempunyai kekangan legasi yang ketat, sambil menjelaskan bahawa era IE akan berakhir.

Di sekitar IE, terdapat pemotongan selanjutnya: Edge Legacy (pra-Chromium) hilang daripada matriks sokongan , bersama-sama dengan Pelayar Android lama dan generasi iOS dan Firefox yang lebih lama. Hanya beberapa versi terakhir pelayar ini, serta Firefox ESR, dikekalkan dalam skop. Projek yang benar-benar mesti menyokong persekitaran sedemikian dijangka kekal pada barisan 3.x.

Memotong senarai pelayar ini bukan sahaja memudahkan pengujian merentasi pelayar ; ia juga mengalih keluar sebahagian besar kod keserasian . Ini menyumbang secara langsung kepada saiz fail jQuery 4 yang lebih kecil, terutamanya setelah cabang khusus Internet Explorer hilang.

Keselamatan: Jenis Dipercayai dan penjajaran CSP yang lebih ketat

Selain sokongan pelayar, jQuery 4 juga bertindak balas terhadap jangkaan keselamatan moden dalam penggunaan pengeluaran yang besar . Banyak organisasi kini sangat bergantung pada Dasar Keselamatan Kandungan (CSP) untuk mengurangkan pendedahan kepada serangan skrip silang tapak (XSS), dan dalaman jQuery memerlukan kemas kini untuk berfungsi dengan bersih di bawah peraturan yang lebih ketat.

Perubahan tajuk ialah sokongan untuk Jenis DipercayaiApabila sesebuah laman web menguatkuasakan dasar seperti require-trusted-types-for 'script', hanya nilai yang dibungkus dalam Jenis Dipercayai tertentu (seperti TrustedHTML) mungkin disuntik ke dalam sinki DOM yang sensitif. Versi jQuery terdahulu secara tidak sengaja boleh melanggar sekatan ini dalam beberapa laluan API, lalu mewujudkan geseran untuk pasukan yang cuba mengetatkan CSP mereka.

Dengan versi 4.0, kandungan HTML yang dibungkus sebagai TrustedHTML kini boleh dihantar ke dalam kaedah manipulasi DOM jQuery tanpa mencetuskan pelanggaran dasar. Pustaka telah diaudit supaya, jika boleh, ia berfungsi dengan Trusted Types dan bukannya melawannya.

Satu lagi tweak berkaitan mempengaruhi pemuatan skrip tak segerak. jQuery kini lebih suka mencipta standard <script> tags untuk banyak permintaan skrip asinkron dan bukannya bergantung pada pembinaan sebaris. Peralihan ini membantu mengelakkan ralat CSP dalam persediaan yang melarang JavaScript sebaris, yang semakin biasa dalam pelaksanaan yang diperketatkan.

Daripada AMD kepada modul ES dan saluran binaan baharu

Di sebalik semua itu, jQuery 4 menggunakan modul ES sebagai format modul utamanya , meninggalkan struktur AMD lama yang telah lama menguasakan rantaian binaannya. Ini menyelaraskan projek dengan sistem modul standard yang menjadi asas JavaScript moden.

Daripada RequireJS, projek kini menggunakan Gulung atas untuk menggabungkan sumber modul ESBagi pasukan yang mengintegrasikan jQuery ke dalam rantaian alat kontemporari, ini bermakna pustaka lebih sesuai secara semula jadi bersama-sama dengan kebergantungan berasaskan ESM yang lain dan boleh digunakan secara langsung melalui <script type="module"> di mana sesuai.

Ujian juga telah diadaptasi: versi berasaskan modul dilaksanakan secara tersendiri , supaya isu khusus untuk binaan ESM dapat dikesan lebih awal. Ini amat relevan untuk pembangun yang ingin mengimport hanya bahagian jQuery dalam pakej tersuai atau yang menyeragamkan pangkalan kod mereka berdasarkan semantik ESM.

Pengedaran tidak berubah secara dramatik dari perspektif operasi. Versi baharu ini tersedia melalui CDN jQuery rasmi dan melalui npm , dengan CDN pihak ketiga biasanya mengambilnya dari semasa ke semasa. Untuk saluran paip atau proses penggunaan CI sedia ada, ini bermakna geseran minimum apabila bertukar daripada keluaran 3.x sebelumnya kepada binaan baharu.

Senarai panjang API yang telah dialih keluar dan ditamatkan

Jika keluaran kecil terdahulu dengan lembut mendorong pembangun menjauhi corak lama, jQuery 4 akhirnya mengalih keluar banyak API yang telah ditanda sebagai tidak digunakan selama bertahun-tahun . Matlamatnya adalah untuk bergantung pada ciri JavaScript terbina dalam yang telah disediakan oleh setiap pelayar yang disokong.

Antara pemindahan tersebut adalah utiliti seperti jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, dan jQuery.cssPropsFungsi-fungsi ini pada asalnya mengisi jurang dalam pelaksanaan pelayar yang tidak konsisten, tetapi sebahagian besarnya menduplikasi apa yang ditawarkan oleh bahasa itu sendiri sekarang.

Dalam latihan, pangkalan kod dijangka menukar pembantu ini dengan padanan asalnya: Array.isArray() Sebagai ganti jQuery.isArray, JSON.parse() di mana jQuery.parseJSON dulu, String.prototype.trim() menggantikan jQuery.trim, dan Date.now() khususnya jQuery.now, antara lain. Migrasi ke arah ini cenderung menjadikan kod lebih mudah alih dan kurang terikat dengan tingkah laku khusus jQuery.

Di bahagian dalaman, kaedah tatasusunan seperti push, sort, dan splice telah dialih keluar daripada prototaip jQueryIni sebenarnya merupakan pembantu dalaman yang telah terdedah, dan penyingkirannya menjelaskan bahawa pembangun harus melayan koleksi jQuery secara berbeza daripada tatasusunan biasa, walaupun kadangkala ia berkongsi persamaan yang dangkal.

Semua pembersihan ini, digabungkan dengan pengguguran kod kes khas untuk versi Internet Explorer yang lebih lama, mengecilkan jejak perpustakaan sebanyak lebih daripada 3 kilobait dalam bentuk gzip . Bagi laman web yang mengambil berat tentang setiap kilobait, itu merupakan penjimatan yang tidak remeh, terutamanya apabila digandingkan dengan pengoptimuman lain.

Binaan standard, binaan langsing dan pengurangan saiz fail

Saiz fail sentiasa menjadi sebahagian daripada perbualan sekitar jQuery, dan versi 4 meneruskan trend ke arah teras yang lebih ramping . Binaan standard yang diminimumkan kini mempunyai berat kurang daripada 80 KB, berbanding kira-kira 88 KB untuk jQuery 3.7.1.

Binaan langsing ini menyasarkan persekitaran yang tidak memerlukan sokongan Ajax atau animasi . Dengan mengalih keluar modul tersebut, varian langsing jQuery 4 akan menurun lebih jauh, mencapai sekitar 56 KB dalam satu laporan dan kira-kira 19.5 KB di-gzip dalam laporan lain, bergantung pada metrik dan butiran mampatan yang anda lihat. Walau apa pun, hala tujunya jelas: kurang legasi, pakej yang lebih kecil.

Selain Ajax dan animasi, binaan langsing ini juga tidak termasuk Deferreds dan Callbacks dalam keluaran baharu. Memandangkan Janji asli kini disokong dengan baik merentasi semua pelayar sasaran kecuali IE11, pasukan yakin bahawa kebanyakan corak tak segerak boleh bergantung secara langsung pada primitif bahasa terbina dalam.

Pembangun yang lebih suka permukaan API penuh masih boleh memilih binaan standard, tetapi projek yang ingin meminimumkan muatan mempunyai lebih banyak pilihan berbanding sebelum ini . Dengan bajet prestasi yang semakin ketat, terutamanya pada mudah alih, keupayaan untuk memilih varian yang dipangkas merupakan kelebihan praktikal.

Acara fokus dan kabur kini mengikut spesifikasi W3C

Salah satu perubahan tingkah laku yang lebih halus tetapi berkesan dalam jQuery 4 melibatkan peristiwa fokus dan kabur pada elemen antara muka pengguna . Dari segi sejarah, pelayar tidak bersetuju tentang susunan tepat peristiwa ini diaktifkan, yang membawa kepada ketidakkonsistenan yang sukar dijejaki.

Untuk mengatasinya, versi jQuery terdahulu mengatasi susunan peristiwa natif untuk menyediakan urutan yang seragam, walaupun itu bermakna menyimpang daripada piawaian yang berkembang. Pembangun membina kod di atas andaian tersebut, selalunya tanpa menyedari bahawa tingkah laku tersebut berbeza daripada apa yang diseragamkan secara beransur-ansur oleh pelayar.

Sekarang spesifikasi W3C mentakrifkan susunan yang konsisten untuk focus, focusin, focusout dan blur, pelayar moden kebanyakannya telah menumpukan pada model tersebut. Sebagai tindak balas, jQuery 4 mengalih keluar logik penggantian lamanya dan membiarkan susunan peristiwa asli mengatasi dalam semua pelayar yang disokong, sejajar dengan spesifikasi semasa.

Kelebihannya ialah tingkah laku menjadi lebih mudah diramal merentasi ekosistem . Kelemahannya ialah kod yang bergantung pada susunan jQuery sebelum ini kini mungkin bertindak secara berbeza, mungkin menimbulkan kes tepi yang tidak dijangka dalam borang atau interaksi UI yang kompleks. Ini adalah salah satu bidang di mana menjalankan ujian dan menggunakan pemalam jQuery Migrate yang dikemas kini semasa naik taraf boleh menjadi sangat membantu.

Perpustakaan yang lebih ramping, tetapi tidak semua orang bersetuju dengan peranannya

Seperti mana-mana teknologi yang tahan lama, pendapat tentang kedudukan jQuery pada tahun 2026 adalah berbeza secara mendadak . Bagi sesetengah pembangun, kesimpulannya mudah: jika anda memulakan aplikasi web baharu yang menyasarkan pelayar moden, nampaknya tiada sebab langsung untuk memperkenalkan jQuery.

Pengkritik sering menimbulkan kebimbangan tentang prestasi dan kebergantungan . JavaScript asli biasanya lebih pantas dan mengelakkan penambahan puluhan kilobait kod perpustakaan. Versi jQuery yang lebih lama juga cenderung untuk kekal tidak ditambal di tapak pengeluaran, dengan sebahagian kecil web dilaporkan masih menjalankan keluaran 2.x yang berusia sedekad.

Di seberang perdebatan, ramai pengamal berpendapat bahawa jQuery kekal sebagai alat yang cekap dan pragmatik dalam kerja seharian . Walaupun rangka kerja seperti React atau Vue mendominasi aplikasi halaman tunggal yang besar, jQuery boleh menjadi lebih sesuai untuk penambahbaikan tambahan, laman berbilang halaman klasik atau prototaip pantas di mana pemproses saluran paip komponen penuh terasa berlebihan.

Masih terdapat pembangun yang menggambarkan jQuery sebagai salah satu daripada beberapa pustaka JavaScript yang terasa menyenangkan untuk digunakan secara konsisten , terutamanya untuk manipulasi DOM dan pengendalian peristiwa. Sintaksnya yang ringkas, kaedah berantai dan idiom yang telah lama wujud dapat mengurangkan boilerplate dan memastikan skrip kecil boleh dibaca.

Perbezaan perspektif itu bermakna jQuery 4 mungkin ditafsirkan dalam cara yang berbeza: sebagai pemodenan alat legasi yang anggun oleh sesetengah pihak, dan sebagai keluaran penyelenggaraan minimum untuk era yang semakin pudar oleh pihak lain . Realitinya di lapangan ialah banyak tapak pengeluaran terus bergantung padanya, tidak kira sama ada ia dipaparkan dalam templat projek baharu atau tidak.

Penggunaan dunia sebenar: apabila jQuery masih menjimatkan masa

Di luar hujah abstrak, cerita daripada pembangunan harian menunjukkan bagaimana jQuery masih boleh menyelesaikan masalah tertentu dengan kod yang sangat sedikit . Satu contoh melibatkan pembinaan medan borang beranimasi yang boleh ditukar di mana beberapa input hanya muncul apabila input lain dipilih atau ditanda.

Dalam kes itu, pembangun pada mulanya cuba mencipta tingkah laku dengan JavaScript biasa , mengimbangi berbilang pendengar peristiwa, peralihan CSS dan isu masa. Selepas beberapa percubaan, skrip telah berkembang kepada lebih daripada lima puluh baris dan masih mengalami keadaan perlumbaan di mana animasi akan berkonflik atau menyala secara tidak teratur.

Akhirnya, kekecewaan itu mengatasi masalah dan jQuery 4 telah ditambah sebagai satu kebergantungan . Dengan memanfaatkan pengendalian peristiwa dan utiliti animasinya, kesan yang sama direplikasi hanya dalam beberapa baris kod. Pertukarannya adalah mudah: pustaka tambahan ~80 KB sebagai pertukaran untuk pelaksanaan yang jauh lebih mudah dan keupayaan untuk beralih kepada ciri lain.

Senario seperti ini menonjolkan mengapa moto perpustakaan yang telah lama wujud iaitu “tulis kurang, lakukan lebih banyak” masih bergema bagi sesetengah pasukan . Walaupun dalam era API asli dan rangka kerja yang canggih, terdapat saat-saat di mana skrip kecil yang ditambah dengan jQuery lebih pantas dibina dan lebih mudah diselenggara daripada penyelesaian tersuai sepenuhnya.

Sudah tentu, itu tidak bermakna setiap projek mendapat manfaat daripada penyertaan jQuery. API JavaScript dan DOM moden lebih konsisten berbanding dahulu , piawaian HTML5 dan ECMAScript telah mengurangkan masalah merentas pelayar, dan untuk banyak aplikasi halaman tunggal, rangka kerja atau tiada pustaka langsung mungkin lebih sesuai. Intinya bukanlah jQuery diperlukan secara universal, tetapi lebih kepada ia kekal sebagai pilihan yang berguna apabila masalah dan kekangan sejajar.

Daripada abstraksi penting kepada peranan perpustakaan standard

Untuk memahami mengapa jQuery 4 memberi tumpuan kepada pelangsingan badan dan bukannya mencipta semula dirinya sendiri, adalah membantu untuk mengingati betapa berbezanya landskap ketika perpustakaan muncul . Dua dekad yang lalu, pelayar sering berbeza dalam tafsiran mereka tentang tingkah laku JavaScript dan DOM, menjadikan interaksi asas pun terasa rapuh.

Dalam persekitaran itu, jQuery bukanlah sesuatu yang pilihan untuk kebanyakan pasukan. Ia menggabungkan panggilan Ajax, pemilihan DOM, pengendalian peristiwa dan animasi ke dalam API yang konsisten, membolehkan pembangun mempercayai bahawa kod akan bertindak sama merentasi IE, Firefox, Safari dan kemudian Chrome. Ketekalan ini adalah penting pada masa Microsoft sering meneruskan ideanya sendiri dengan Internet Explorer dan mengharapkan orang lain untuk mengikutinya.

Sejak itu, badan piawaian dan vendor pelayar telah bersatu pada HTML5, versi ECMAScript moden dan penjajaran silang pelayar yang jauh lebih baik . Enjin Chrome dan terbitannya menguasai pasaran, dan keupayaan asas pelayar jauh lebih tinggi berbanding ketika jQuery mula tersebar melalui kalangan pembangun.

Hasilnya, apa yang ditawarkan oleh jQuery hari ini kurang berkaitan dengan penyelesaian masalah ketidakserasian dan lebih kepada bertindak sebagai "perpustakaan standard" yang mudah dan biasa di atas JavaScript . Gaya rantaian fungsi dan idiom ringkasnya menggalakkan cara yang santai dan hampir berfungsi untuk menstrukturkan kod yang berat DOM, walaupun bahasa asasnya tidak berfungsi sepenuhnya.

Bagi pembangun yang hanya mengenali perkakasan moden, kedalaman pengaruh jQuery mudah diabaikan . Banyak corak yang diperkenalkan atau dipopularkan oleh perpustakaan telah digabungkan kembali ke dalam bahasa dan API DOM itu sendiri. Dalam erti kata itu, jQuery 4 tidak cuba menuntut semula wilayah yang hilang tetapi mengekalkan perpustakaan sejajar dengan ekosistem yang berkembang di sekelilingnya.

Secara keseluruhannya, perubahan dalam jQuery 4.0.0 – daripada menggugurkan IE10 kepada menerima pakai modul ES, Trusted Types dan set API yang lebih ringkas – mencerminkan projek yang berkembang secara sedar tanpa meninggalkan berjuta-juta tapak yang masih bergantung padanya . Keluaran ini tidak cuba bersaing secara langsung dengan rangka kerja moden, tetapi ia memberikan pasukan yang terus menggunakan jQuery versi yang terasa selesa dalam persekitaran pelayar dan perkakasan hari ini, sambil membiarkan pintu terbuka untuk migrasi secara beransur-ansur di tempat yang masuk akal.

ataque generalizado de la cadena de suministro de NPM
Artikel berkaitan:
Serangan Rantaian Bekalan NPM yang meluas menggegarkan Ekosistem JavaScript
Related posts: