Apa perbedaan antara jQuery versi 1, versi 2, dan versi 3? [Tutup]

114

Saya baru-baru ini menemukan webchart.jsdesain halaman menggunakan jQuery versi 2, dan saya menggunakan jQuery versi 1.

Agar kode berfungsi, lihat untuk digunakan sekarang versi terbaru, lalu saya memeriksa dukungan inti jQuery dan mereka telah merilis jQuery 3.

Saya berpikir untuk menggunakan versi 3 sekarang, tetapi saya mencari jika versi 3 memiliki masalah kompatibilitas, yang mungkin hanya digunakan pada perangkat tertentu.

nol8
sumber

Jawaban:

250

Versi Utama

Versi 1.0: Rilis stabil pertama.
Versi 2.0: Menghilangkan dukungan IE 6–8 untuk peningkatan kinerja dan pengurangan ukuran file
Versi 3.0: Dukungan Promises / A + untuk Ditunda, $.ajaxdan $.when, .data()kompatibel dengan HTML5

Semua versi

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| Version Number |    Release Date    |       Latest Update        | Size Prod (KB) |                                   Additional Notes                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 1.0            | August 26, 2006    |                            |                | First stable release                                                                  |
| 1.1            | January 14, 2007   |                            |                |                                                                                       |
| 1.2            | September 10, 2007 | 1.2.6                      | 54             |                                                                                       |
| 1.3            | January 14, 2009   | 1.3.2                      | 55.9           | Sizzle Selector Engine introduced into core                                           |
| 1.4            | January 14, 2010   | 1.4.4                      | 76             |                                                                                       |
| 1.5            | January 31, 2011   | 1.5.2                      | 83             | Deferred callback management, ajax module rewrite                                     |
| 1.6            | May 3, 2011        | 1.6.4                      | 89             | Significant performance improvements to the attr() and val() functions                |
| 1.7            | November 3, 2011   | 1.7.2 (March 21, 2012)     | 92             | New Event APIs: .on() and .off(), while the old APIs are still supported.             |
| 1.8            | August 9, 2012     | 1.8.3 (November 13, 2012)  | 91.4           | Sizzle Selector Engine rewritten, improved animations and $(html, props) flexibility. |
| 1.9            | January 15, 2013   | 1.9.1 (February 4, 2013)   | 90             | Removal of deprecated interfaces and code cleanup                                     |
| 1.10           | May 24, 2013       | 1.10.2 (July 3, 2013)      | 91             | Incorporated bug fixes and differences reported from both the 1.9 and 2.0 beta cycles |
| 1.11           | January 24, 2014   | 1.11.3 (April 28, 2015)    | 95.9           |                                                                                       |
| 1.12           | January 8, 2016    | 1.12.4 (May 20, 2016)      | 95             |                                                                                       |
| 2.0            | April 18, 2013     | 2.0.3 (July 3, 2013)       | 81.1           | Dropped IE 68 support for performance improvements and reduction in filesize         |
| 2.1            | January 24, 2014   | 2.1.4 (April 28, 2015)     | 82.4           |                                                                                       |
| 2.2            | January 8, 2016    | 2.2.4 (May 20, 2016)       | 85.6           |                                                                                       |
| 3.0            | June 9, 2016       | 3.0.0 (June 9, 2016)       | 86.3           | Promises/A+ support for Deferreds, $.ajax and $.when, .data() HTML5-compatible        |
| 3.1            | July 7, 2016       | 3.1.1 (September 23, 2016) | 86.3           | jQuery.readyException added, ready handler errors are now not silenced                |
| 3.2            | March 16, 2017     | 3.2.1 (March 20, 2017)     | 84.6           | Hotfixes for regressions that were introduced in the 3.2.0                            |
| 3.3            | January 19, 2018   | 3.3.1 (January 20, 2018)   | 84.8           | Deprecation of old function calls, functions that accept classes now support them     |
|                |                    |                            |                | defined in an array                                                                   |
| 3.4            | April 10, 2019     | 3.4.1 (May 1, 2019)        | 86.1           | Performance improvements, nonce and nomodule support, fixes for radio elements, a     |
|                |                    |                            |                | minor security fix                                                                    |
| 3.5            | April 10, 2020     | 3.5.1 (May 4, 2020)        | 87.4           | Security fixes, .even() & .odd() methods, jQuery.trim deprecated                      |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

Referensi: https://en.wikipedia.org/wiki/JQuery#Release_history

Penjelasan Mendetail tentang Versi Utama

Versi 1.0 adalah rilis stabil pertama jQuery. Rilis ini mendukung browser web lama yang bahkan tidak lagi didukung oleh pengembangnya masing-masing. Jika Anda mengharapkan banyak pengunjung dengan browser web yang lebih lama, ini pasti akan menjadi versi yang tepat.

Versi 2.0 menghentikan dukungan untuk Internet Explorer 6-8 untuk meningkatkan kinerja jQuery secara keseluruhan dan mengurangi ukuran file perpustakaan. Dengan kata sederhana: Versi 2.0 lebih cepat dan lebih kecil dalam ukuran file daripada versi 1.0, tetapi tidak lagi mendukung browser web yang lebih lama. Sejak Microsoft menghentikan dukungan untuk Windows XP, cukup aman untuk mengasumsikan bahwa pengunjung Anda akan menggunakan browser yang kompatibel dengan versi 2.0 kecuali Anda tahu sebelumnya bahwa ini tidak akan terjadi (lihat versi 1.0).

Dengan dirilisnya versi 3.0, kedua versi 1.11.1 dan 2.1.1 akan ditingkatkan ke jQuery Compat 3.0 dan jQuery 3.0. jQuery Compat 3.0 masih akan mendukung browser lama seperti Internet Explorer 8 sedangkan versi reguler 3.0 hanya akan mendukung browser evergreen (versi browser tertentu saat ini dan sebelumnya).

Dengan dirilisnya Versi 3.0, tidak ada alasan untuk tetap menggunakan versi 1.0 atau 2.0. Beberapa catatan dari blog resmi jQuery:

  • Jika Anda membutuhkan dukungan untuk berbagai macam browser termasuk IE8, Opera 12, Safari 5, dan sejenisnya, gunakan paket jQuery-Compat 3.0.0. Kami merekomendasikan versi ini untuk sebagian besar situs web, karena memberikan kompatibilitas terbaik untuk semua pengunjung situs web.
  • Jika situs web Anda dibuat hanya untuk browser terdepan yang selalu hijau, atau merupakan aplikasi berbasis HTML yang terdapat dalam tampilan web (misalnya PhoneGap atau Cordova) tempat Anda mengetahui mesin browser mana yang sedang digunakan, gunakan paket jQuery 3.0.0 .
  • Sampai kami mengumumkan sebaliknya, kedua paket akan berisi API publik yang sama dalam versi mayor dan minor dengan nomor yang sesuai. Ini akan memudahkan pengembang untuk beralih di antara keduanya dan kompatibel secara maksimal dengan plugin jQuery pihak ketiga.

Referensi: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/

icecub
sumber
6
Catatan untuk pengguna ASP.NET 4.0: jQuery 3.x memecah postback. jquery.com/upgrade-guide/3.0/…
Jared Thirsk
2
Apakah jawaban ini benar-benar akurat? Sejauh yang saya pelajari, jQuery Compat 3.0 bahkan tidak tersedia lebih dari versi alfa.
HischT
2
@HischT Referensi disediakan dengan jawabannya. Bagian yang Anda bicarakan bahkan disalin dari posting blog jQuery sendiri tentang ini. Saya tidak tahu seberapa akurat Anda menginginkannya, tetapi saya jamin itu tidak akan lebih baik daripada memiliki sumber sebagai referensi. Juga, lihat tanggal jawaban ini. Itu lebih dari 2 tahun yang lalu. Saya melakukan yang terbaik untuk terus memperbarui ini dengan informasi yang relevan mengenai rilis baru, tetapi itu cukup. Jika Anda merasa perbaikan dapat dilakukan, edit jawabannya dan tinjau saya atau komunitas.
icecub
2
@icecub Harap dicatat bahwa komentar saya dirumuskan sebagai pertanyaan dan bukan sebagai fakta yang sebenarnya, karena saya tidak 100% yakin tentang itu. Saya baru saja mencoba mengunduh atau bahkan menemukan info apa pun tentang jQuery Compat 3 dan tidak dapat menemukan info lebih dari posting blog yang Anda maksud, dan versi alfa tambahannya. Bagi saya, sepertinya mereka membuang jQuery Compat 3 sebelum diluncurkan. Jika ada yang bisa membuktikan saya salah, saya akan sangat senang karena saya ingin menggunakan jQuery Compat 3 dalam proyek saya.
HischT
6
Jquery-compat dibatalkan sebelum dirilis pada awal 2016 setelah MS menjatuhkan dukungan untuk IE8-10. blog.jquery.com/2016/01/14/jquery-3-0-beta-released
Dan Is Fiddling By Firelight