Mengapa WordPress menggunakan jQuery v1.12.4 yang kedaluwarsa?

25

Saat memeriksa kode sumber, saya melihat bahwa WordPress menggunakan jQuery v1.12.4. Mengapa WordPress menggunakan jQuery versi lama ini?

Sandun
sumber
1
Jawabannya sangat sederhana: WP ingin mempertahankan kompatibilitas ke belakang dengan browser lama. WP memiliki cukup banyak pengguna yang masih membutuhkan dukungan IE8 yang belum dapat mereka jatuhkan.
Simba

Jawaban:

32

Ada banyak tema dan plugin menggunakan jQuery yang dimuat oleh WP core. Setiap kali jQuery diperbarui, ada risiko tema lama dan melanggar plugin (karena banyak dari mereka masih digunakan tetapi tidak lagi diperbarui). Itu sebabnya Anda juga melihat jquery-migrate.jsdalam kode sumber Anda. Ini adalah skrip yang menangkap fungsi lama yang digunakan oleh plugin / tema dan memastikan bahwa mereka masih berfungsi di versi jQuery yang lebih baru.

Pindah ke 3.xkeluarga jQuery akan menyebabkan banyak plugin / tema rusak, karena tidak mungkin memiliki skrip migrasi untuk semua yang sudah usang. Inilah sebabnya mengapa versi baru 1.xkeluarga masih dikembangkan sementara 2.xdan 3.xkeluarga sudah ada. Tidak akan ada versi baru 1.xdan2.x setelah 1.12dan 2.2, kecuali untuk patch (keamanan). Meskipun jQuery 1.12tidak ketinggalan zaman sekarang, itu akan dalam waktu dekat.

Jadi, WordPress sedang terikat. Jika tidak meningkatkan ke versi jQuery yang lebih tinggi, itu tidak dapat mengikuti kemungkinan baru. Namun, jika itu meningkatkan, situs yang lebih lama akan rusak. Hasil yang paling mungkin adalah bahwa WP akan menunggu selama beberapa tahun, jadi tema / plugin yang lebih lama akan dihapus, dan kemudian melompat ke 3.xkeluarga .

Klarifikasi

Di atas mungkin menyarankan bahwa bermigrasi dari 1.xversi ke 3.xsebenarnya tidak mungkin. Itu tidak benar. Ini sedikit rumit. Caranya adalah dengan terlebih dahulu memutakhirkan ke 1.12, debug hasilnya menggunakan skrip migrasi yang lebih lama dan kemudian tambahkan 3.0skrip migrasi, yang berfungsi dengan baik 1.12. Instruksi lengkap di sini .

Pembaruan keamanan

Pengembang akan melihat bahwa Google Dev Tools / Lighthouse melaporkan situs WordPress sebagai rentan karena kehadiran versi jQuery yang lebih tua ini - atau sepertinya begitu. Akibatnya, semua Lighthouse lakukan adalah memeriksa apakah perpustakaan ini memiliki kerentanan yang disebutkan dalam Database Kerentanan Snyk . Jika Anda memeriksa ini secara rinci, Anda akan menemukan bahwa versi 1.12.4 bersih. Mengingat penyebaran luas 1,12,4 Anda dapat mengandalkan kerentanan serius yang ditangani dengan cepat.

cjbj
sumber
4
Hanya untuk menambahkan sedikit info tambahan - baik jQuery 1.x dan 2.x secara aktif diperbarui hingga Mei tahun ini, perbedaan di antara mereka hanyalah bahwa 1.x memiliki kompatibilitas untuk IE8, dan 2.x menghapus tambalan dan perbaikan untuk browser buggy tersebut. 3.x adalah versi baru, dan membawa semuanya selangkah lebih maju dengan mengubah berbagai antarmuka agar kompatibel dengan antarmuka HTML5 / JavaScript "resmi" (yaitu, di mana ia melakukan hal-hal dengan cara yang sama, hal-hal menjadi standar setelah jQuery memiliki versi sendiri melakukan hal yang sama).
Rycochet
23
  • Itu tidak ketinggalan jaman
  • Pindah ke 2.x atau 3.x terlalu dini, orang masih menggunakan IE8 yang hanya didukung pada 1.x
Nabil Kadimi
sumber
2
@LightnessRacesinOrbit Setuju tetapi dari pengalaman saya, pertanyaan ini tepat sehubungan dengan kaliber rata-rata pengembang WP.
MonkeyZeus
7
Pembaruan untuk Jan 2018: Gagasan bahwa itu sudah usang meskipun masih menjadi default yang disertakan dengan WordPress tidak lagi "omong kosong". Kerentanan XSS telah diidentifikasi dengan 1.12.4 dan cabang 1.x tidak lagi menerima pembaruan. Remediasi yang disarankan adalah meng-upgrade ke jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
Juga ketika menggunakan Mercusuar Google memberi tahu Anda bahwa versi 1.12.4 berisi kerentanan keamanan yang diketahui sehingga Anda tidak boleh menggunakannya.
phpheini
4
Mendukung IE8, yang bahkan tidak dilakukan oleh Microsoft pada saat ini tidak bertanggung jawab. Itu membuat orang menggunakan browser yang ketinggalan zaman dengan masalah keamanan. Jika seseorang menggunakan IE8, mereka harus berhenti.
David A. French
1
@ DavidA.French I mendukung gerakan ini. Pengembang perlu BERHENTI mengakomodasi pengguna yang menolak memperbarui. Ada saat ketika semua orang ingin memiliki kompatibilitas total di setiap browser yang mungkin diketahui, dan kebiasaan buruk itu terus berlanjut. Mungkin ketika interweb berhenti bekerja untuk mereka, orang-orang itu akan memperbarui ke browser modern. Pada titik ini jika Anda tidak berada pada versi terbaru dari salah satu browser utama (IE & AOL tidak masuk hitungan sama sekali) internet tidak akan memungkinkan Anda. Jujur IE8? Anda seperti kurang dari 1% dari web, [dituturkan dalam AOL] "Selamat tinggal"
KFish