jQuery v4.0 versi beta
(blog.jquery.com)- Dukungan untuk IE 10 ke bawah dihapus, dan dukungan untuk Edge Legacy, iOS <11, Firefox <65, serta Android Browser juga dihentikan
- API yang sudah berstatus deprecated selama beberapa versi dihapus:
jQuery.cssNumber,jQuery.cssProps,jQuery.isArray,jQuery.parseJSON,jQuery.nodeName,jQuery.isFunction,jQuery.isWindow,jQuery.camelCase,jQuery.type,jQuery.now,jQuery.isNumeric,jQuery.trim,jQuery.fx.interval push,sort,splice, yang merupakan metode Array internal pada prototipe jQuery, dihapus sehingga berpotensi berdampak pada plugin yang bergantung pada metode tersebut- Override lama jQuery pada urutan event terkait
focusout,blur,focusin,focusdihapus, dan browser selain IE mengikuti urutan W3C saat ini:blur→focusout→focus→focusin jQuery.ajaxkini mendukung data biner danFormData, dan perilaku sebelumnya yang menganggap tipe data tidak dikenal lalu mengonversinya menjadi string diganti menjadi penanganan otomatis- Perilaku
jQuery.ajaxyang secara otomatis menaikkan request menjadi JSONP saatdataType: "json"dan callback diberikan bersama-sama telah dihapus - Sumber jQuery dimigrasikan dari AMD ke ES modules, dan alat packaging beralih dari RequireJS ke Rollup
- Dukungan Trusted Types ditambahkan, sehingga HTML yang dibungkus dengan TrustedHTML dapat digunakan sebagai input untuk metode manipulasi jQuery tanpa melanggar directive CSP
require-trusted-types-for - Sebagian besar request skrip asinkron diubah agar menggunakan tag
<script>, sehingga menghindari error CSP akibat penggunaan skrip inline - Deferreds dan Callbacks dihapus dari build slim, sehingga ukurannya menjadi di bawah 20k bytes berdasarkan gzip dan sekitar 8k gzipped bytes lebih kecil dibanding build reguler
- Jika membutuhkan dukungan IE11, konfigurasi yang disarankan adalah menggunakan build main alih-alih build slim atau menambahkan polyfill native Promises
- Panduan upgrade komprehensif akan dipublikasikan sebelum rilis resmi, dan jQuery Migrate plugin akan disiapkan untuk membantu migrasi
- Rilis beta tersedia di jQuery CDN dan npm, sementara CDN pihak ketiga tidak akan meng-host beta dan akan meng-host rilis resmi 4.0.0 nanti
1 komentar
Komentar Hacker News
Jika ingin tahu apa yang masih membuat jQuery tetap hidup bahkan setelah 2024, perlu diingat bahwa WordPress masih mencakup lebih dari 1/3 web dan sebagian besar instalasi serta sangat banyak pluginnya sangat bergantung pada jQuery
Bagus bahwa penghapusan API atau fungsi yang akan ditinggalkan terus berjalan, dan kemungkinan besar jQuery akan tetap dominan di web selama beberapa tahun ke depan
Selama kira-kira 15 tahun terakhir, industri terlalu tenggelam dalam framework JavaScript yang terlalu rumit dan mencolok, padahal untuk 99% halaman web, semua JavaScript yang dibutuhkan hanyalah binding dinamis pada form yang dibuat secara dinamis, penanganan status error, dan beberapa panggilan Ajax, sementara sisanya sering kali berlebihan
Industri tampaknya akan bergerak menjauh dari kompleksitas React menuju kesederhanaan seperti htmx, Phoenix LiveView, Ruby on Rails Turbo, dan ya, jQuery biasa
Jika jQuery dihapus dari semua perangkat lunak, cukup banyak situs web di seluruh internet akan berhenti berfungsi
Perusahaan tempat saya pernah bekerja dulu menjalankan produk SaaS enterprise dengan puluhan ribu baris kode jQuery
Kecuali benar-benar diperlukan, tidak akan ada penulisan ulang ke framework JS modern. Sebagian besar kode itu ditulis lebih dari 10 tahun lalu untuk memenuhi kebutuhan pelanggan tertentu, dan argumen bahwa memakai framework modern akan membantu rekrutmen juga tidak berlaku. Perusahaan hanya membayar engineer frontend sekitar 75 ribu hingga 90 ribu dolar, tingkat keluar-masuk karyawan rendah, dan sebagian besar engineer saat ini sudah bekerja lebih dari 5 tahun
Yang terpenting, stack saat ini berjalan dengan baik dan pelanggan lama juga puas. Sebagian besar rekayasa perangkat lunak terjadi dalam bisnis yang membosankan seperti ini di kota-kota dengan biaya hidup jauh lebih rendah daripada pusat big tech seperti Bay Area atau Seattle
Tidak glamor, tetapi orang yang dibutuhkan sangat banyak sehingga tetap bisa menghasilkan banyak uang
Kalau suatu hari saya pensiun dari dunia startup big tech yang mengejar tren terbaru, saya ingin mencari nafkah dengan jujur membuat situs WordPress dan selesai kerja setiap hari jam 3 sore
Saya sudah membuat event dispatcher sendiri di sana-sini, tetapi jQuery melakukan bagian ini dengan benar. Bahkan sekarang saya hampir hanya memakai jQuery untuk event handling, tetapi itu sangat berguna sehingga tetap saya sertakan di hampir semua proyek sisi klien
Yang ingin saya tanyakan adalah apakah ada yang tahu library ringan yang bisa menangani
$(window).trigger('click')dan$(myClassInstance).trigger('myCustomEvent',{data})dengan API yang sama, termasuk listening asinkronBerkat munculnya
fetch()dan selector CSS, bagian lain dari jQuery sepertinya kini sudah tidak terlalu diperlukan, tetapi rasanya tidak perlu menciptakan ulang roda. Sebelum bilang bahwa class instance yang mendispatch event adalah code smell, untuk membangun framework reaktif dari nol hal itu memang diperlukanMisalnya, class komponen dasar saya mendengarkan custom resize event tertentu yang terjadi pada layar yang memuat dirinya, dan layar itu hanya mengirim event ke komponen yang perlu menata ulang bagian dalamnya tanpa menggulir layar. Class layar mendengarkan
window.resize, tetapi hanya mendispatch saat tata letak benar-benar bermasalah. Menempelkan listener resize DOM terpisah untuk setiap komponen kewindowjelas tidak masuk akalSaya heran karena di HN masih terus ada orang yang memandang jQuery sekadar sebagai library pemilih DOM
Padahal sebenarnya ini adalah kumpulan alat yang didukung luas dan sangat stabil, yang menyediakan bukan hanya pemilihan DOM tetapi juga manipulasi atribut, request Ajax, penanganan event, animasi, hingga fungsi utilitas umum
Dan bahkan kalau ada fitur native yang bisa menggantikan jQuery, API-nya belum tentu sehalus itu
Jika pekerjaan Anda hanya perlu menambahkan sedikit fungsionalitas di atas HTML sisi server dan tidak sampai membutuhkan framework UI JS penuh, jQuery adalah dependensi yang stabil, tepercaya, kompatibel lintas browser, dan biayanya kecil
Native JS sudah punya semua yang dimiliki jQuery, biasanya hanya tanpa tumpukan plugin yang dikelola buruk dan setengah jadi. Plugin seperti itu biasanya hanya melakukan hal yang ingin mereka lakukan dan tidak banyak membantu di luar itu
Selector murni memang lebih bertele-tele, tetapi editor kode yang lumayan umumnya bisa menutupinya dengan kecepatan input yang sama. Bukan mau berdebat, tetapi saya benar-benar tidak begitu paham mengapa masih banyak orang memakai jQuery
https://youmightnotneedjquery.com/
Begitu butuh sesuatu yang sedikit lebih dari pemilihan DOM, banyak orang langsung mengambil framework JS besar yang sedang ngetren saat itu, dan memang selalu begitu
Tidak perlu build tool dan segala kerepotan yang ikut menyertainya. React juga bisa dipakai seperti itu, tetapi fitur yang disediakan jelas bukan pembanding yang setara
Di dunia ketika banyak orang berusaha keras menghapus jejak terakhir jQuery, saya sungguh penasaran siapa yang masih aktif mengembangkan dengan jQuery saat ini
Sebagian besar hal yang dulu dilakukan dengan jQuery sekarang sudah ada di browser, dan menurut saya contoh paling kuat adalah
querySelectorAllawait, danasyncdi JS native terasa jauh lebih rumit dibanding$.ajax()Saya memang mencoba membiasakan diri dengan pure JS di beberapa proyek pribadi kecil, tetapi bagi saya, menangani ini dengan
$.ajax()adalah cara yang langsung jalan seperti memori ototLagi pula, mungkin hanya sekitar 20 orang yang benar-benar memakai kode manipulasi DOM yang saya tulis. Saya bukan orang UI melainkan backend, hanya saja saya juga menulis frontend karena tidak ada orang lain yang mengerjakannya
https://survey.stackoverflow.co/2023/#section-most-popular-t...
Secara pribadi, saya melihat HTMX sebagai penerus spiritual jQuery dalam beberapa hal
Memulai proyek baru dengan jQuery memang terasa meragukan, tetapi jelas ada pengembang yang jauh lebih terbiasa menyelesaikan sesuatu dengan gaya jQuery daripada cara JavaScript murni
Contoh bagusnya adalah levelsio: https://twitter.com/levelsio/status/1750175827197567165
Saya juga termasuk kubu itu dan masih memakai jQuery
SaaS saya saat ini adalah ekstensi https://www.snipcss.com yang tidak punya banyak kode UI, dan SaaS berikutnya akan menjadi ekstensi otomatisasi web berbasis ChatGPT yang UI-nya cukup banyak. Keduanya memakai jQuery
Alasan utama saya tidak beralih ke pure JS dengan
querySelectorAlladalah karena saya suka cara memasang event-nya, terutama karena bisa dipasang di parent untuk menargetkan elemen turunan yang ditambahkan secara dinamis, lalu function chaining-nya bagus, dan jumlah kodenya lebih sedikit daripada pure JSKeren. Hanya saja saya terlalu lama menunggu 4.0 sehingga akhirnya membuat jQuery versi saya sendiri dengan beberapa perbedaan inti
Untuk animasi, tween, dan timeline, saya memakai CSS murni alih-alih sistem kustom jQuery, menangani elemen tunggal dan daftar secara transparan, dan memilih pendekatan inline
Saya juga sedang membuat sesuatu yang mirip, dengan tambahan inline event dan lebih dari sekadar metode array standar [0]
Akan bagus jika ada tulisan atau screencast yang menjelaskan bagaimana locality of behavior diimplementasikan di surreal dan proyek pendamping css-scope-inline
Saya ingin memahaminya agar bisa merawatnya dalam jangka panjang dan mungkin memakainya di proyek saya juga
Saya juga ingin membahas filosofi tentang web. Sepertinya ada beberapa hal yang pandangan kita cukup selaras
[0] https://hyperspace.so/All.js.png
Rasanya seperti kembali ke masa junior sekitar tahun 2008. Saya pernah berdebat sengit dengan tech lead soal menambahkan jQuery ke proyek
Argumennya adalah ukuran library yang sudah diminimalkan, 40KB, akan menjadi beban terlalu besar bagi waktu muat halaman
Lalu kami menghabiskan seminggu penuh menulis Ajax call secara manual dan menguji dukungan berbagai browser, tetapi pada akhirnya tetap gagal membuatnya berjalan di Internet Explorer 5
Pada masa itu jQuery benar-benar menyelesaikan banyak sekali masalah pelik, dan akhirnya dia pun menambahkan library itu ke proyek
Kerja bagus tim jQuery. Saya rasa saya akan selalu menyukai jQuery
Ini memang alat yang menyelesaikan pekerjaan
Sekarang setelah dukungan browser untuk pemilihan DOM jauh lebih baik, saya penasaran kenapa orang masih memakai jQuery pada 2024
Bukan mau merendahkan, dan saya justru merasa keren kalau pengembangannya masih berlanjut, tetapi saya bingung apa kasus penggunaannya
document.querySelector()Misalnya
:selected,:checked, dan ada beberapa lagi yang memang saya temui beberapa kaliSecara umum, API DOM bertentangan dengan hampir seluruh naluri saya tentang desain API yang baik. Saya juga punya keluhan soal API jQuery, tetapi tetap jauh lebih baik, dan alur baca-tulisnya jauh lebih alami
Saya memelihara aplikasi web .NET tua berusia sekitar 15 tahun yang bergantung pada jQuery. Bermimpi melakukan refactor total atau rewrite ke sesuatu yang lebih modern seperti Web Components memang indah, tetapi kenyataannya itu tidak akan pernah terjadi
Jika itu halaman yang hanya dilihat 20 pegawai internal, jQuery sudah cukup ringan, bisa langsung dimuat dari CDN, tidak perlu transpile apa pun, dan pada dasarnya menangani semua yang dibutuhkan
Sebagai referensi, kami membangun seluruh editor drag-and-drop untuk platform low-code dengan jQuery
Termasuk editornya, semua kontrol, yaitu komponen UI, dan tentu saja kode akhir yang dihasilkan juga sepenuhnya jQuery
Namun para eksekutif perusahaan besar sering bertanya kepada sales engineer kenapa bukan React atau Angular dan sejenisnya
Jadi saya benar-benar senang membaca bahwa jQuery masih sangat relevan seperti ini, dan senang karena co-founder sekaligus CTO kami terus mendukung pilihan ini tanpa berusaha memindahkan stack
Masih ingat saat jQuery pertama kali muncul
Untuk meyakinkan rekan-rekan, saya sampai mengadakan presentasi internal berjudul “Don’t Fear the $” dan menjelaskan kelebihan yang ditawarkan jQuery
Saya ingat masa kejayaan jQuery, ketika kami memakainya sebagai pengganti Mootools
Karena banyak orang sedang berpindah dari React ke HTMX, mungkin saja setelah berputar satu lingkaran, kita akan melihat web kembali memakai jQuery murni
Membayangkan membuat aplikasi modern hanya dengan jQuery—dengan aksesibilitas, dukungan mobile, pembaruan real-time, visualisasi, dan bahkan beberapa fitur PWA—terdengar benar-benar mengerikan
Hype HTMX juga tampaknya sedang menunggu saat bertemu kenyataan. Cara memprogram aplikasi dengan atribut palsu mirip DSL sepertinya akan cepat terasa membosankan
Ini adalah library JS kecil yang sangat terspesialisasi
$().load()