Sejarah dan Legasi jQuery

Sejarah dan Legasi jQuery
jQuery - ini adalah yang paling popular di dunia perpustakaan JavaScript. Komuniti pembangunan web menciptanya pada akhir 2000-an, menghasilkan ekosistem tapak, pemalam dan rangka kerja yang kaya menggunakan jQuery di bawah hud.

Tetapi dalam beberapa tahun kebelakangan ini, statusnya sebagai alat utama untuk pembangunan web telah terhakis. Mari kita lihat mengapa jQuery menjadi popular dan mengapa ia ketinggalan dalam fesyen, dan juga dalam kes apakah ia masih dinasihatkan untuk menggunakannya untuk mencipta tapak web moden.

Sejarah Ringkas jQuery

John Resig (John Resig) mencipta versi pertama perpustakaan pada tahun 2005, dan diterbitkan pada tahun 2006-m, pada acara yang dipanggil BarCampNYC. hidup laman web rasmi jQuery penulis menulis:

jQuery ialah perpustakaan Javascript berdasarkan moto: Javascript sepatutnya menyeronokkan untuk dikodkan. jQuery mengambil tugas biasa, berulang, membuang semua markup yang tidak perlu, dan menjadikannya pendek, elegan dan bersih.

jQuery mempunyai dua kelebihan utama. Yang pertama ialah API yang mudah untuk memanipulasi halaman web. Khususnya, ia menyediakan kaedah yang berkuasa untuk memilih elemen. Bukan sahaja anda boleh memilih mengikut ID atau kelas, jQuery membenarkan anda menulis ungkapan kompleks, sebagai contoh, untuk memilih elemen berdasarkan hubungannya dengan elemen lain:

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

Lama kelamaan, mekanisme pemilihan menjadi perpustakaan yang berasingan Sizzle.

Kelebihan kedua perpustakaan ialah ia mengabstrakkan perbezaan antara pelayar. Pada tahun-tahun itu, sukar untuk menulis kod yang boleh berfungsi dengan pasti dalam semua pelayar.

Kekurangan penyeragaman bermakna pembangun perlu mengambil kira banyak perbezaan antara penyemak imbas dan kes tepi. Lihatlah kod sumber jQuery awal ini dan cari jQuery.browser. Berikut adalah satu contoh:

// 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 terima kasih kepada jQuery, pembangun boleh mengalihkan kebimbangan tentang semua perangkap ini ke bahu pasukan yang membangunkan perpustakaan.

Kemudian, jQuery menjadikannya lebih mudah untuk melaksanakan teknologi yang lebih kompleks seperti animasi dan Ajax. Perpustakaan telah menjadi kebergantungan standard untuk tapak web dengan berkesan. Dan hari ini ia menguasai sebahagian besar Internet. W3Techs percaya bahawa 74% tapak hari ini menggunakan jQuery.

Kawalan ke atas pembangunan jQuery juga telah menjadi lebih formal. Pada tahun 2011 pasukan mencipta Papan jQuery. Dan pada tahun 2012 jQuery Board berubah menjadi Yayasan jQuery.

Pada tahun 2015, Yayasan jQuery bergabung dengan Yayasan Dojo, untuk mencipta Yayasan JS, yang kemudiannya digabungkan dengan Yayasan Node.js menjadi 2019-m untuk mencipta Yayasan OpenJS, di mana jQuery adalah salah satu daripada "projek terobosan. Β»

Keadaan yang berubah-ubah

Walau bagaimanapun, dalam beberapa tahun kebelakangan ini jQuery hilang popularitinya. GitHub mengalih keluar perpustakaan daripada bahagian hadapan tapak saya. Bootstrap v5 hapuskan jQuerykerana itu miliknya"pergantungan pelanggan terbesar untuk JavaScript biasa"(pada masa ini bersaiz 30 KB, dikecilkan dan dibungkus). Beberapa trend dalam pembangunan web telah melemahkan kedudukan jQuery sebagai alat penting.

pelayar

Atas beberapa sebab, perbezaan dan batasan penyemak imbas menjadi kurang penting. Pertama, penyeragaman telah bertambah baik. Pembangun penyemak imbas utama (Apple, Google, Microsoft dan Mozilla) bekerjasama untuk membangunkan piawaian web dalam Kumpulan Kerja Teknologi Aplikasi Hiperteks Web.
Walaupun penyemak imbas masih berbeza antara satu sama lain dalam beberapa cara penting, vendor sekurang-kurangnya mempunyai cara untuk mencari dan mencipta pangkalan data biasa dan bukannya perang kekal bersama-sama. Sehubungan itu, API pelayar telah memperoleh keupayaan baharu. Cth, 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);
    });

Kaedah querySelector ΠΈ querySelectorAll pemilih jQuery pendua:

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

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

Anda kini boleh memanipulasi kelas elemen menggunakan senarai kelas:

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

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

Laman web ini Anda Mungkin Tidak Memerlukan jQuery Disenaraikan beberapa lagi situasi di mana kod jQuery boleh digantikan dengan kod asli. Sesetengah pembangun sentiasa menggunakan jQuery kerana mereka tidak tahu tentang API baharu, tetapi apabila mereka tahu, mereka mula menggunakan perpustakaan dengan lebih jarang.

Menggunakan ciri asli meningkatkan prestasi halaman. banyak kesan animasi daripada jQuery kini anda boleh melaksanakan jauh lebih berkesan menggunakan CSS.

Sebab kedua ialah penyemak imbas dikemas kini dengan lebih pantas berbanding sebelum ini. Kebanyakan mereka menggunakan strategi pembaharuan "evergreen"., kecuali Apple Safari. Ia boleh dikemas kini di latar belakang tanpa penglibatan pengguna dan tidak terikat dengan kemas kini OS.

Ini bermakna ciri penyemak imbas baharu dan pembetulan pepijat diedarkan dengan lebih pantas, dan pembangun tidak perlu menunggu sehingga Boleh saya guna akan mencapai tahap yang boleh diterima. Mereka boleh menggunakan ciri dan API baharu dengan yakin tanpa memuat turun jQuery atau polyfill.

Sebab ketiga ialah Internet Explorer menghampiri keadaan yang tidak relevan sepenuhnya. IE telah lama menjadi sasaran pembangunan web di seluruh dunia. Pepijatnya tersebar luas, dan kerana IE mendominasi tahun 2000-an dan tidak menggunakan strategi kemas kini malar hijau, versi lama masih biasa.

Pada tahun 2016, Microsoft mempercepatkan penyahtauliahan IE, berhenti menyokong versi kesepuluh dan lebih awal, mengehadkan sokongan kepada IE 11. Dan semakin banyak, pembangun web mempunyai kemewahan untuk mengabaikan keserasian IE.

Malah jQuery berhenti menyokong IE 8 dan ke bawah bermula dari versi 2.0, diterbitkan pada 2013. Dan walaupun dalam beberapa kes sokongan IE masih diperlukan, sebagai contoh, di tapak lama, situasi ini semakin jarang timbul.

Rangka kerja baharu

Sejak kemunculan jQuery, banyak rangka kerja telah dicipta, termasuk pemimpin moden Bertindak, bersudut ΠΈ Vue. Mereka mempunyai dua kelebihan penting berbanding jQuery.

Pertama, ia memudahkan untuk memisahkan antara muka pengguna kepada komponen. Rangka kerja direka untuk mengendalikan pemaparan dan pengemaskinian halaman. Dan jQuery biasanya digunakan hanya untuk mengemas kini, meninggalkan tugas menyediakan halaman awal kepada pelayan.

Sebaliknya, komponen React, Angular dan Vue membolehkan anda menggabungkan HTML, kod dan juga CSS dengan ketat. Sama seperti kami membahagikan asas kod ke dalam banyak fungsi dan kelas serba lengkap, keupayaan untuk membahagikan antara muka kepada komponen boleh guna semula menjadikannya lebih mudah untuk membina dan menyelenggara tapak yang kompleks.

Kelebihan kedua ialah rangka kerja yang lebih terkini mematuhi paradigma deklaratif, di mana pembangun menerangkan rupa antara muka sepatutnya dan menyerahkannya kepada rangka kerja untuk membuat semua perubahan yang diperlukan untuk mencapai apa yang diingini. Pendekatan ini bertentangan dengan pendekatan imperatif yang mencirikan kod jQuery.

Dalam jQuery, anda secara eksplisit menulis langkah-langkah untuk membuat sebarang perubahan. Dan dalam rangka kerja deklaratif anda berkata, "Mengikut data ini, antara muka sepatutnya kelihatan seperti ini." Ini boleh menjadikan penulisan kod bebas pepijat lebih mudah.

Pembangun telah menggunakan pendekatan baharu untuk pembangunan laman web, itulah sebabnya populariti jQuery telah menurun.

Bila hendak menggunakan jQuery?

Jadi bila sepatutnya gunakan jQuery?

Jika kerumitan projek meningkat, maka adalah lebih baik untuk memulakan dengan perpustakaan atau rangka kerja lain yang membolehkan anda mengurus kerumitan dengan bermakna. Sebagai contoh, bahagikan antara muka kepada komponen. Menggunakan jQuery pada tapak sedemikian mungkin kelihatan baik pada mulanya, tetapi ia akan membawa kepada kod spageti dengan cepat di mana anda tidak pasti serpihan yang mempengaruhi bahagian halaman mana.

Saya pernah berada dalam situasi sedemikian, apabila cuba melakukan apa-apa perubahan, ia terasa seperti tugas yang sukar. Anda tidak boleh memastikan anda tidak akan memecahkan apa-apa kerana pemilih jQuery bergantung pada struktur HTML yang dihasilkan oleh pelayan.

Di hujung skala yang lain ialah tapak ringkas yang hanya memerlukan sedikit interaktiviti atau kandungan dinamik. Saya juga tidak akan lalai menggunakan jQuery dalam kes ini, kerana banyak lagi yang boleh anda lakukan dengan API asli.

Walaupun saya memerlukan sesuatu yang lebih berkuasa, saya akan mencari perpustakaan khusus, mis. axios untuk Ajax atau Animate.css untuk animasi. Ini akan menjadi lebih mudah daripada memuatkan semua jQuery untuk fungsi kecil.

Saya rasa rasional terbaik untuk menggunakan jQuery ialah ia menyediakan fungsi yang komprehensif untuk bahagian hadapan tapak web. Daripada mempelajari pelbagai API asli atau perpustakaan khusus, anda boleh membaca hanya dokumentasi jQuery dan menjadi produktif serta-merta.

Pendekatan imperatif tidak berskala dengan baik, tetapi lebih mudah dipelajari daripada pendekatan deklaratif perpustakaan lain. Untuk tapak dengan keupayaan terhad yang jelas, lebih baik menggunakan jQuery dan bekerja dengan tenang: perpustakaan tidak memerlukan pemasangan atau penyusunan yang rumit.

Selain itu, jQuery adalah bagus jika anda yakin bahawa tapak anda tidak akan menjadi rumit dari semasa ke semasa, dan jika anda tidak mengambil berat tentang fungsi asli, yang pastinya memerlukan menulis lebih banyak kod daripada jQuery.

Anda juga boleh menggunakan perpustakaan ini jika anda perlu menyokong versi lama IE. Kemudian jQuery akan melayani anda seperti yang dilakukan pada zaman IE ialah pelayar yang paling popular.

Prospection

jQuery tidak akan hilang dalam masa terdekat. dia berkembang secara aktif, dan ramai pembangun lebih suka menggunakan APInya, walaupun kaedah asli tersedia. Perpustakaan telah membantu seluruh generasi pembangun mencipta tapak web yang berfungsi pada mana-mana penyemak imbas. Walaupun ia telah diganti dalam banyak cara oleh perpustakaan, rangka kerja dan paradigma baharu, jQuery telah memainkan peranan yang sangat positif dalam penciptaan web moden.

Melainkan kefungsian jQuery berubah dengan ketara, kemungkinan penggunaan perpustakaan akan terus menurun secara perlahan-lahan dalam beberapa tahun akan datang. Laman web baharu cenderung dibina menggunakan rangka kerja yang lebih moden dari awal, dan kes penggunaan yang sesuai untuk jQuery semakin jarang berlaku.

Sesetengah orang tidak menyukai kadar alat pembangunan web menjadi usang, tetapi bagi saya ia adalah bukti kemajuan pesat. jQuery telah membolehkan kami melakukan banyak perkara dengan lebih baik. Perkara yang sama berlaku untuk penggantinya.

Sumber: www.habr.com

Tambah komen