Sejarah dan Warisan jQuery

Sejarah dan Warisan jQuery
jQuery - ini yang paling populer di dunia perpustakaan JavaScript. Komunitas pengembangan web menciptakannya pada akhir tahun 2000-an, menghasilkan ekosistem situs, plugin, dan kerangka kerja yang kaya menggunakan jQuery.

Namun dalam beberapa tahun terakhir, statusnya sebagai alat utama untuk pengembangan web telah terkikis. Mari kita lihat mengapa jQuery menjadi populer dan mengapa ia ketinggalan zaman, dan juga dalam kasus apa masih disarankan untuk menggunakannya untuk membuat situs web modern.

Sejarah Singkat jQuery

John Resig (John Resig) membuat perpustakaan versi pertama pada tahun 2005, dan diterbitkan pada tahun 2006-m, di sebuah acara bernama BarCampNYC. Pada situs resmi jQuery penulis menulis:

jQuery adalah perpustakaan Javascript berdasarkan moto: Javascript harus menyenangkan untuk dikodekan. jQuery mengambil tugas yang umum dan berulang, menghapus semua markup yang tidak perlu, dan menjadikannya singkat, elegan, dan bersih.

jQuery memiliki dua keunggulan utama. Yang pertama adalah API yang nyaman untuk memanipulasi halaman web. Secara khusus, ini memberikan metode yang ampuh untuk memilih elemen. Anda tidak hanya dapat memilih berdasarkan ID atau kelas, jQuery memungkinkan Anda menulis ekspresi kompleks, misalnya, untuk memilih elemen berdasarkan hubungannya dengan elemen lain:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

Seiring berjalannya waktu, mekanisme seleksi menjadi perpustakaan tersendiri Mendesis.

Keuntungan kedua dari perpustakaan adalah mengabstraksi perbedaan antar browser. Pada tahun-tahun itu, sulit untuk menulis kode yang dapat bekerja dengan baik di semua browser.

Kurangnya standarisasi berarti pengembang harus memperhitungkan banyak perbedaan antara browser dan kasus edge. Melihat kode sumber jQuery awal ini dan cari jQuery.browser. Ini salah satu contohnya:

// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
        // Use the handy event callback
        jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );

// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {

        // Only works if you document.write() it
        document.write("<scr" + "ipt id=__ie_init defer=true " + 
                "src=javascript:void(0)></script>");

        // Use the defer script hack
        var script = document.getElementById("__ie_init");
        script.onreadystatechange = function() {
                if ( this.readyState == "complete" )
                        jQuery.ready();
        };

        // Clear from memory
        script = null;

// If Safari  is used
} else if ( jQuery.browser == "safari" ) {
        // Continually check to see if the document.readyState is valid
        jQuery.safariTimer = setInterval(function(){
                // loaded and complete are both valid states
                if ( document.readyState == "loaded" || 
                        document.readyState == "complete" ) {

                        // If either one are found, remove the timer
                        clearInterval( jQuery.safariTimer );
                        jQuery.safariTimer = null;

                        // and execute any waiting functions
                        jQuery.ready();
                }
        }, 10);
}

Dan berkat jQuery, pengembang dapat mengalihkan kekhawatiran tentang semua kendala ini ke pundak tim yang mengembangkan perpustakaan.

Belakangan, jQuery mempermudah penerapan teknologi yang lebih kompleks seperti animasi dan Ajax. Perpustakaan secara efektif telah menjadi ketergantungan standar untuk situs web. Dan saat ini teknologi ini menggerakkan sebagian besar Internet. W3Techs percaya itu 74% situs saat ini menggunakan jQuery.

Kontrol atas pengembangan jQuery juga menjadi lebih formal. Pada tahun 2011 tim membuat Papan jQuery. Dan pada tahun 2012 jQuery Board diubah menjadi jQuery Foundation.

Pada tahun 2015, jQuery Foundation bergabung dengan Dojo Foundation, untuk membuat JS Foundation, yang kemudian digabungkan dengan Node.js Foundation menjadi 2019-m untuk membuat Yayasan OpenJS, di mana jQuery adalah salah satu dari β€œproyek terobosan. Β»

Mengubah keadaan

Namun, dalam beberapa tahun terakhir jQuery kehilangan popularitasnya. GitHub menghapus perpustakaan dari frontend situs saya. Bootstrap v5 singkirkan jQuerykarena itu miliknya"ketergantungan klien terbesar untuk JavaScript reguler"(saat ini berukuran 30 KB, diperkecil dan dikemas). Beberapa tren dalam pengembangan web telah melemahkan posisi jQuery sebagai alat yang penting.

Browser

Karena sejumlah alasan, perbedaan dan keterbatasan browser menjadi kurang penting. Pertama, standardisasi telah membaik. Pengembang browser besar (Apple, Google, Microsoft dan Mozilla) bekerja sama untuk mengembangkan standar web di dalam Kelompok Kerja Teknologi Aplikasi Hypertext Web.
Meskipun browser masih berbeda satu sama lain dalam beberapa hal penting, vendor setidaknya memiliki sarana untuk mencari dan membuat database umum daripada perang permanen bersama. Oleh karena itu, API browser telah memperoleh kemampuan baru. Misalnya, Ambil API mampu menggantikan fungsi Ajax dari jQuery:

// jQuery
$.getJSON('https://api.com/songs.json')
    .done(function (songs) {
        console.log(songs);
    })

// native
fetch('https://api.com/songs.json')
    .then(function (response) {
        return response.json();
    })
    .then(function (songs) {
        console.log(songs);
    });

Metode querySelector ΠΈ kueriSelectorAll duplikat pemilih jQuery:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

Anda sekarang dapat memanipulasi kelas elemen menggunakan Daftar kelas:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

Situs ini Anda Mungkin Tidak Membutuhkan jQuery Tercantum beberapa situasi di mana kode jQuery dapat diganti dengan kode asli. Beberapa pengembang selalu menggunakan jQuery karena mereka tidak tahu tentang API baru, tetapi ketika mereka mengetahuinya, mereka mulai lebih jarang menggunakan perpustakaan.

Menggunakan fitur asli meningkatkan kinerja halaman. Banyak efek animasi dari jQuery sekarang Anda bisa menerapkannya jauh lebih efektif menggunakan CSS.

Alasan kedua adalah browser diperbarui lebih cepat dari sebelumnya. Kebanyakan dari mereka menggunakan strategi pembaharuan yang β€œselalu hijau”., kecuali Apple Safari. Mereka dapat diperbarui di latar belakang tanpa keterlibatan pengguna dan tidak terikat dengan pembaruan OS.

Artinya, fitur-fitur browser baru dan perbaikan bug didistribusikan lebih cepat, dan pengembang tidak perlu menunggu sampai selesai Bisakah saya gunakan akan mencapai tingkat yang dapat diterima. Mereka dapat dengan percaya diri menggunakan fitur dan API baru tanpa mengunduh jQuery atau polyfill.

Alasan ketiga adalah Internet Explorer mendekati keadaan yang tidak relevan sama sekali. IE telah lama menjadi kutukan bagi pengembangan web di seluruh dunia. Bugnya tersebar luas, dan karena IE mendominasi tahun 2000an dan tidak menggunakan strategi pembaruan yang selalu ada, versi yang lebih lama masih umum ditemukan.

Pada tahun 2016, Microsoft mempercepat penonaktifan IE, berhenti mendukung versi kesepuluh dan sebelumnya, membatasi dukungan pada IE 11. Dan semakin banyak pengembang web yang memiliki kemewahan untuk mengabaikan kompatibilitas IE.

Bahkan jQuery berhenti mendukung IE 8 dan di bawahnya mulai dari versi 2.0, diterbitkan pada tahun 2013. Dan meskipun dalam beberapa kasus, dukungan IE masih diperlukan, misalnya, di situs lama, situasi ini semakin jarang terjadi.

Kerangka kerja baru

Sejak munculnya jQuery, banyak framework telah diciptakan, termasuk para pemimpin modern Bereaksi, Kaku ΠΈ Pandangan. Mereka memiliki dua keunggulan penting dibandingkan jQuery.

Pertama, mereka memudahkan untuk memisahkan antarmuka pengguna menjadi beberapa komponen. Kerangka kerja dirancang untuk menangani rendering dan pembaruan halaman. Dan jQuery biasanya hanya digunakan untuk update, menyerahkan tugas menyediakan halaman awal ke server.

Di sisi lain, komponen React, Angular, dan Vue memungkinkan Anda menggabungkan HTML, kode, dan bahkan CSS secara erat. Sama seperti kita membagi basis kode menjadi banyak fungsi dan kelas mandiri, kemampuan untuk membagi antarmuka menjadi komponen yang dapat digunakan kembali membuatnya lebih mudah untuk membangun dan memelihara situs yang kompleks.

Keuntungan kedua adalah kerangka kerja yang lebih baru menganut paradigma deklaratif, di mana pengembang menjelaskan seperti apa tampilan antarmuka dan menyerahkannya pada kerangka kerja untuk membuat semua perubahan yang diperlukan untuk mencapai apa yang diinginkan. Pendekatan ini bertentangan dengan pendekatan imperatif yang menjadi ciri kode jQuery.

Di jQuery, Anda secara eksplisit menuliskan langkah-langkah untuk membuat perubahan apa pun. Dan dalam kerangka deklaratif Anda berkata, "Menurut data ini, antarmukanya akan terlihat seperti ini." Ini dapat membuat penulisan kode bebas bug menjadi lebih mudah.

Pengembang telah mengadopsi pendekatan baru untuk pengembangan situs web, itulah sebabnya popularitas jQuery menurun.

Kapan menggunakan jQuery?

Jadi ketika harus menggunakan jQuery?

Jika kompleksitas proyek meningkat, lebih baik memulai dengan perpustakaan atau kerangka kerja lain yang memungkinkan Anda mengelola kompleksitas secara bermakna. Misalnya, membagi antarmuka menjadi beberapa komponen. Menggunakan jQuery di situs seperti itu mungkin terlihat baik-baik saja pada awalnya, tetapi dengan cepat akan mengarah ke kode spageti yang membuat Anda tidak yakin fragmen mana yang memengaruhi bagian halaman mana.

Saya pernah berada dalam situasi seperti ini, ketika mencoba melakukan perubahan apa pun, rasanya seperti tugas yang sulit. Anda tidak dapat memastikan bahwa Anda tidak akan merusak apa pun karena penyeleksi jQuery bergantung pada struktur HTML yang dihasilkan oleh server.

Di ujung lain skalanya adalah situs sederhana yang hanya memerlukan sedikit interaktivitas atau konten dinamis. Saya juga tidak akan menggunakan jQuery secara default dalam kasus ini, karena masih banyak lagi yang dapat Anda lakukan dengan API asli.

Bahkan jika saya memerlukan sesuatu yang lebih kuat, saya akan mencari perpustakaan khusus, misalnya. aksioma untuk Ajax atau Animate.css untuk animasi. Ini akan lebih mudah daripada memuat semua jQuery untuk fungsionalitas kecil.

Saya pikir alasan terbaik untuk menggunakan jQuery adalah karena ia menyediakan fungsionalitas komprehensif untuk bagian depan situs web. Daripada mempelajari berbagai API asli atau perpustakaan khusus, Anda cukup membaca dokumentasi jQuery dan menjadi produktif secara instan.

Pendekatan imperatif tidak berskala dengan baik, namun lebih mudah dipelajari dibandingkan pendekatan deklaratif pada perpustakaan lain. Untuk situs dengan kemampuan yang jelas terbatas, lebih baik menggunakan jQuery dan bekerja dengan tenang: perpustakaan tidak memerlukan perakitan atau kompilasi yang rumit.

Selain itu, jQuery bagus jika Anda yakin bahwa situs Anda tidak akan menjadi rumit seiring berjalannya waktu, dan jika Anda tidak peduli dengan fungsionalitas asli, yang tentunya memerlukan penulisan lebih banyak kode daripada jQuery.

Anda juga dapat menggunakan perpustakaan ini jika Anda perlu mendukung versi IE yang lebih lama. Kemudian jQuery akan melayani Anda seperti dulu ketika IE adalah browser paling populer.

Prospeksi

jQuery tidak akan hilang dalam waktu dekat. Dia berkembang secara aktif, dan banyak pengembang lebih suka menggunakan API-nya, meskipun metode asli tersedia. Perpustakaan telah membantu seluruh generasi pengembang membuat situs web yang berfungsi di browser apa pun. Meskipun banyak hal telah digantikan oleh perpustakaan, kerangka kerja, dan paradigma baru, jQuery telah memainkan peran yang sangat positif dalam penciptaan web modern.

Kecuali fungsi jQuery berubah secara signifikan, kemungkinan penggunaan perpustakaan akan terus menurun secara perlahan namun terus menurun selama beberapa tahun ke depan. Situs web baru cenderung dibangun menggunakan kerangka kerja yang lebih modern sejak awal, dan kasus penggunaan jQuery yang sesuai menjadi semakin jarang.

Beberapa orang tidak menyukai betapa cepatnya alat pengembangan web menjadi usang, namun bagi saya ini adalah bukti kemajuan pesat. jQuery telah memungkinkan kami melakukan banyak hal dengan lebih baik. Hal serupa juga terjadi pada penerusnya.

Sumber: www.habr.com

Tambah komentar