jQuery Sajarah sarta Warisan

jQuery Sajarah sarta Warisan
jQuery - ieu nu pang populerna di dunya perpustakaan JavaScript. Komunitas pamekar wéb nyiptakeunana dina ahir 2000-an, nyababkeun ékosistem situs, plugins, sareng kerangka anu beunghar nganggo jQuery handapeun tiung.

Tapi dina taun-taun ayeuna, statusna salaku alat utama pikeun pamekaran wéb parantos ngarusak. Hayu urang tingali naha jQuery janten populér sareng naha éta kaluar tina busana, sareng dina kasus naon waé masih disarankeun pikeun ngagunakeunana pikeun nyiptakeun situs wéb modern.

A Sajarah ringkes jQuery

John Resig (John Resig) dijieun versi mimiti perpustakaan di 2005, jeung diterbitkeun dina 2006-m, dina acara disebut BarCampNYC. Dina ramatloka resmi jQuery panulis nyerat:

jQuery mangrupikeun perpustakaan Javascript dumasar kana motto: Javascript kedah pikaresepeun pikeun kode. jQuery nyokot tugas umum, repetitive, strips kaluar sagala markup perlu, sarta ngajadikeun eta pondok, elegan, tur beresih.

jQuery boga dua kaunggulan utama. Anu kahiji nyaéta API anu merenah pikeun ngamanipulasi halaman wéb. Khususna, éta nyayogikeun metode anu kuat pikeun milih unsur. Henteu ngan ukur anjeun tiasa milih ku ID atanapi kelas, jQuery ngamungkinkeun anjeun nyerat éksprési kompleks, contona, pikeun milih unsur dumasar kana hubunganana sareng elemen sanés:

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

Kana waktu, mékanisme pamilihan janten perpustakaan misah Haseuh.

Kauntungan kadua perpustakaan éta nya éta abstraksi béda antara browser. Dina taun-taun éta, sesah nyerat kode anu tiasa dianggo sacara dipercaya dina sadaya panyungsi.

Kurangna standarisasi hartosna yén pamekar kedah ngitung seueur bédana antara panyungsi sareng kasus tepi. Candak katingal di kode sumber jQuery mimiti ieu jeung neangan jQuery.browser. Ieu hiji conto:

// 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);
}

Jeung berkat jQuery, pamekar bisa mindahkeun worries ngeunaan sagala pitfalls ieu kana taktak tim ngembangkeun perpustakaan.

Engké, jQuery ngagampangkeun pikeun nerapkeun téknologi anu langkung kompleks sapertos animasi sareng Ajax. Perpustakaan sacara efektif janten katergantungan standar pikeun situs wéb. Sareng ayeuna éta ngawasa pangsa ageung Internét. W3Techs percaya yén 74% situs ayeuna nganggo jQuery.

Kontrol kana pamekaran jQuery ogé janten langkung formal. Dina 2011 tim dijieun jQuery Board. Sarta dina 2012 jQuery Board robah jadi jQuery Foundation.

Dina 2015, Yayasan jQuery ngagabung sareng Yayasan Dojo, pikeun nyieun JS Foundation, nu lajeng ngagabung jeung Node.js Foundation kana 2019-m nyieun Yayasan OpenJS, dimana jQuery mangrupikeun salah sahiji "proyék narabas. "

Ngarobah kaayaan

Sanajan kitu, dina taun panganyarna jQuery leungit popularitasnya. GitHub dipiceun perpustakaan ti frontend situs abdi. Bootstrap v5 meunang leupas tina jQuerysabab éta milikna"kagumantungan klien pangbadagna pikeun JavaScript biasa"(ayeuna 30 KB dina ukuran, miniified jeung dipak). Sababaraha tren dina pamekaran wéb parantos ngaleuleuskeun posisi jQuery salaku alat penting.

panyungsi

Kanggo sababaraha alesan, bédana sareng watesan browser janten kirang penting. Kahiji, standarisasi geus ningkat. Pangembang browser utama (Apple, Google, Microsoft sareng Mozilla) damel babarengan pikeun ngembangkeun standar web jero Grup Gawé Téhnologi Aplikasi Hypertext Web.
Sanaos panyungsi masih béda-béda dina sababaraha cara anu penting, para padagang sahenteuna gaduh cara pikeun milarian sareng nyiptakeun pangkalan data umum tibatan perang permanén babarengan. Sasuai, API browser geus miboga kamampuhan anyar. Contona, Dipulut API sanggup ngagantikeun fungsi Ajax tina 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);
    });

Métode querySelector и querySelectorAll duplikat jQuery pickers:

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

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

Anjeun ayeuna tiasa ngamanipulasi kelas unsur nganggo Daptar kelas:

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

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

loka Anjeun bisa jadi teu ngabutuhkeun jQuery Ieu sababaraha kaayaan dimana kode jQuery tiasa diganti ku kode asli. Sababaraha pamekar salawasna lengket kalayan jQuery sabab ngan saukur teu nyaho ngeunaan API anyar, tapi lamun maranehna ngalakukeun, aranjeunna mimiti ngagunakeun perpustakaan kirang sering.

Ngagunakeun fitur asli ngaronjatkeun kinerja kaca. loba épék animasi ti jQuery ayeuna anjeun tiasa ngalaksanakeun leuwih éféktif ngagunakeun CSS.

Alesan anu kadua nyaéta browser diropéa langkung gancang tibatan sateuacanna. Kalolobaan aranjeunna ngagunakeun "evergreen" strategi pembaharuan, iwal ti Apple Safari. Éta tiasa diénggalan di latar tukang tanpa keterlibatan pangguna sareng henteu kabeungkeut kana apdet OS.

Ieu ngandung harti yén fitur browser anyar sareng perbaikan bug disebarkeun langkung gancang, sareng pamekar henteu kedah ngantosan dugi ka Abdi tiasa Paké bakal ngahontal tingkat ditarima. Aranjeunna confidently bisa ngagunakeun fitur anyar jeung API tanpa ngundeur jQuery atanapi polyfills.

Alesan katilu nyaéta yén Internet Explorer nuju ka kaayaan anu teu aya hubunganana lengkep. IE geus lila bane ngembangkeun web sakuliah dunya. Kutu na nyebar, sareng kusabab IE ngadominasi taun 2000an sareng henteu nganggo strategi update evergreen, versi anu langkung lami masih umum.

Dina 2016, Microsoft ngagancangkeun decommissioning IE, ceasing ngarojong versi kasapuluh jeung saméméhna, dugi ka rojongan pikeun IE 11. Jeung beuki, pamekar web boga méwah ignoring kasaluyuan IE.

Malah jQuery dieureunkeun ngarojong IE 8 tur handap mimitian ti vérsi 2.0, diterbitkeun dina 2013. Sarta sanajan dina sababaraha kasus rojongan IE masih diperlukeun, contona, dina situs heubeul, kaayaan ieu timbul kirang na kirang sering.

kerangka anyar

Kusabab mecenghulna jQuery, loba frameworks geus dijieun, kaasup pamingpin modern mere tanggapan, sudut и Vue. Aranjeunna mibanda dua kaunggulan penting leuwih jQuery.

Kahiji, aranjeunna ngagampangkeun pikeun misahkeun antarbeungeut pangguna kana komponén. Frameworks dirancang pikeun nanganan rendering halaman sareng ngamutahirkeun. Sarta jQuery biasana dipaké ngan pikeun ngamutahirkeun, ninggalkeun tugas nyadiakeun kaca awal ka server.

Di sisi anu sanésna, komponén React, Angular sareng Vue ngamungkinkeun anjeun pikeun ngapasangkeun HTML, kode bahkan CSS. Sagampil urang ngabagi basa kode kana loba fungsi timer ngandung sarta kelas, kamampuhan pikeun ngabagi panganteur kana komponén reusable ngagampangkeun pikeun ngawangun jeung ngajaga situs kompléks.

Kauntungan kadua nyaéta yén kerangka anu langkung énggal patuh kana paradigma déklaratif, dimana pamekar ngajelaskeun kumaha antarmuka kedah katingali sareng ngantepkeun kana kerangka pikeun ngadamel sagala parobihan anu diperyogikeun pikeun ngahontal anu dipikahoyong. Pendekatan ieu bertentangan sareng pendekatan imperatif anu ciri kode jQuery.

Dina jQuery, anjeun sacara eksplisit nyerat léngkah-léngkah pikeun ngadamel parobihan. Sareng dina kerangka déklaratif anjeun nyarios, "Nurutkeun data ieu, antarmuka kedah sapertos kieu." Ieu tiasa ngagampangkeun nyerat kode bébas bug.

Pamekar parantos ngadopsi pendekatan énggal pikeun pamekaran halaman wéb, naha éta popularitas jQuery parantos turun.

Iraha nganggo jQuery?

Janten iraha kuduna ngagunakeun jQuery?

Upami pajeulitna proyék naék, langkung saé mimitian ku perpustakaan atanapi kerangka sanés anu ngamungkinkeun anjeun pikeun ngatur pajeulitna sacara bermakna. Contona, ngabagi panganteur kana komponén. Ngagunakeun jQuery on situs misalna bisa kasampak rupa mimitina, tapi bakal gancang ngakibatkeun kode spaghetti dimana anjeun teu yakin fragmen mana mangaruhan bagian mana kaca.

Kuring parantos aya dina kaayaan sapertos kitu, nalika nyobian ngarobih naon waé, éta sigana tugas anu sesah. Anjeun teu bisa yakin yén anjeun moal megatkeun nanaon sabab pamilih jQuery gumantung kana struktur HTML dihasilkeun ku server.

Di tungtung séjén skala aya situs basajan nu ngan merlukeun saeutik interactivity atawa eusi dinamis. Abdi henteu bakal dituna pikeun jQuery dina kasus ieu, sabab aya seueur deui anu anjeun tiasa laksanakeun sareng API asli.

Malah lamun Abdi peryogi hal leuwih kuat, Kuring baris néangan hiji perpustakaan husus, f.eks. aosos pikeun AJAX atawa Animate.css pikeun animasi. Ieu bakal leuwih gampang ti ngamuat sadayana jQuery pikeun fungsionalitas leutik.

Jigana éta rationale pangalusna pikeun ngagunakeun jQuery téh nya éta nyadiakeun fungsionalitas komprehensif pikeun tungtung hareup ramatloka a. Gantina diajar rupa-rupa API asli atawa perpustakaan husus, anjeun bisa maca ngan dokuméntasi jQuery tur jadi instan produktif.

Pendekatan imperatif henteu skalana saé, tapi langkung gampang diajar tibatan pendekatan déklaratif perpustakaan sanés. Pikeun situs kalawan kamampuhan jelas kawates, eta leuwih hade migunakeun jQuery tur dianggo tenang: perpustakaan teu merlukeun assembly kompléks atawa kompilasi.

Sajaba ti, jQuery alus lamun yakin situs anjeun moal meunang pajeulit kana waktu, sarta lamun teu paduli ngeunaan fungsionalitas asli, nu pasti bakal merlukeun nulis kode leuwih ti jQuery.

Anjeun oge bisa make perpustakaan ieu lamun perlu ngarojong versi heubeul tina IE. Lajeng jQuery bakal ngawula ka anjeun kawas deui dina poé nalika IE éta browser nu pang populerna.

Tingali kana masa depan

jQuery moal balik iraha wae geura-giru. Manéhna aktip ngamekarkeun, sareng seueur pamekar langkung resep ngagunakeun API na, sanaos metode asli sayogi. Perpustakaan parantos ngabantosan sadayana generasi pamekar nyiptakeun situs wéb anu tiasa dianggo dina browser naon waé. Sanajan geus diganti ku sababaraha cara ku perpustakaan anyar, frameworks, sarta paradigma, jQuery geus maénkeun peran hugely positif dina kreasi web modern.

Iwal pungsi jQuery sacara signifikan robah, éta kamungkinan yén pamakéan perpustakaan bakal neruskeun lalaunan tapi steadily turunna salila sababaraha taun ka hareup. jaba anyar condong diwangun ngagunakeun frameworks leuwih modern ti mimiti, sarta kasus pamakéan cocog pikeun jQuery jadi beuki langka.

Sababaraha urang teu resep laju nu parabot ngembangkeun web jadi leungit, tapi keur kuring éta bukti kamajuan gancang. jQuery geus diwenangkeun urang ngalakukeun loba hal hadé. Sarua ogé pikeun panerusna.

sumber: www.habr.com

Tambahkeun komentar