jQuery ajalugu ja pärand

jQuery ajalugu ja pärand
jQuery - see on kõige populaarsem maailmas JavaScripti raamatukogu. Veebiarenduse kogukond lõi selle 2000. aastate lõpus, mille tulemuseks oli rikkalik saitide, pistikprogrammide ja raamistike ökosüsteem, mis kasutas kapoti all jQueryt.

Kuid viimastel aastatel on selle staatus veebiarenduse peamise tööriistana vähenenud. Vaatame, miks jQuery populaarseks sai ja miks see moest välja langes ning ka seda, millistel juhtudel on seda siiski soovitav kasutada kaasaegsete veebilehtede loomiseks.

JQuery lühike ajalugu

John Resig (John Resig) lõi 2005. aastal raamatukogu esimese versiooni ja avaldati 2006. aastal-m, üritusel nimega BarCampNYC. Peal jQuery ametlik veebisait autor kirjutas:

jQuery on Javascripti teek, mis põhineb motol: Javascripti kodeerimine peaks olema lõbus. jQuery võtab tavalised korduvad toimingud, eemaldab kõik mittevajalikud märgised ning muudab need lühikeseks, elegantseks ja puhtaks.

jQueryl on kaks peamist eelist. Esimene on mugav API veebilehtedega manipuleerimiseks. Eelkõige pakub see võimsaid meetodeid elementide valimiseks. Saate valida mitte ainult ID või klassi järgi, vaid jQuery võimaldab teil kirjutada keerulisi avaldisi, näiteks valida elemente nende suhete alusel teiste elementidega:

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

Aja jooksul arenes valikumehhanism eraldi raamatukoguks Sizzle.

Teegi teine ​​eelis oli see, et see abstraheeris brauserite erinevusi. Neil aastatel oli raske kirjutada koodi, mis töötaks usaldusväärselt kõigis brauserites.

Standardi puudumine tähendas, et arendajad pidid arvestama arvukate erinevustega brauserite ja servajuhtumite vahel. Heida pilk peale see varajane jQuery lähtekood ja otsige jQuery.browser. Siin on üks näide:

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

Ja tänu jQueryle võivad arendajad kõigi nende lõksude pärast mured panna raamatukogu arendava meeskonna õlgadele.

Hiljem tegi jQuery lihtsamaks keerukamate tehnoloogiate, nagu animatsioonid ja Ajax, juurutamise. Raamatukogust on tegelikult saanud veebisaitide standardne sõltuvus. Ja tänapäeval annab see tohutu osa Internetist. W3Techs usub seda 74% saitidest kasutab tänapäeval jQueryt.

Kontroll jQuery arenduse üle on muutunud ka ametlikumaks. Aastal 2011 meeskond lõi jQuery Board. Ja 2012. aastal jQuery Board muudeti jQuery Foundationiks.

2015. aastal ühines jQuery Foundation Dojo Foundationiga, JS Foundationi loomiseks, mis seejärel ühines Node.js Foundationiga 2019-m luua Sihtasutus OpenJS, mille raames jQuery oli üks "läbimurdeprojektid».

Olude muutumine

Kuid viimastel aastatel jQuery kaotas oma populaarsuse. GitHub eemaldasin raamatukogu minu saidi esiküljelt. Bootstrap v5 jQueryst lahti saadasest see on tema"suurim kliendisõltuvus tavalise JavaScripti jaoks"(praegu 30 KB, minimeeritud ja pakitud). Mitmed veebiarenduse suundumused on nõrgendanud jQuery positsiooni olulise tööriistana.

Brauserid

Mitmel põhjusel on brauseri erinevused ja piirangud muutunud vähem oluliseks. Esiteks on standardimine paranenud. Suuremad brauserite arendajad (Apple, Google, Microsoft ja Mozilla) teevad arendamiseks koostööd veebistandardid raamistikus Veebi hüperteksti rakendustehnoloogia töörühm.
Kuigi brauserid erinevad üksteisest mitmel olulisel moel, on müüjatel vähemalt võimalus otsida ja luua ühine andmebaas. püsiv sõda koos. Sellest tulenevalt on brauseri API-d saanud uusi võimalusi. Nt, Tõmba API võimeline asendama jQuery Ajaxi funktsioone:

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

Meetodid querySelector и querySelectorAll dubleerivad jQuery valijad:

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

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

Nüüd saate elemendiklassidega manipuleerida, kasutades klassiloend:

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

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

Site Te ei pruugi jQueryt vajada Siin on veel mõned olukorrad, kus jQuery koodi saab asendada algkoodiga. Mõned arendajad jäävad alati jQuery juurde, sest nad lihtsalt ei tea uutest API-dest, kuid kui nad seda teavad, hakkavad nad teeki harvemini kasutama.

Omafunktsioonide kasutamine võib lehe jõudlust parandada. Palju jQuery animatsiooniefektid nüüd saate rakendada palju tõhusam kasutades CSS-i.

Teine põhjus on see, et brausereid uuendatakse palju kiiremini kui varem. Enamik neist kasutab "igihaljas" uuendamise strateegia, välja arvatud Apple Safari. Neid saab taustal värskendada ilma kasutaja kaasamiseta ja need ei ole seotud OS-i värskendustega.

See tähendab, et uued brauseri funktsioonid ja veaparandused levitatakse palju kiiremini ning arendajad ei pea ootama, kuni Kas ma võin kasutada saavutab vastuvõetava taseme. Nad saavad enesekindlalt kasutada uusi funktsioone ja API-sid ilma jQueryt või polütäiteid alla laadimata.

Kolmas põhjus on see, et Internet Explorer on lähenemas täieliku ebaolulisuse seisundile. IE on juba pikka aega olnud kogu maailmas veebiarenduse nuhtlus. Selle vead olid laialt levinud ja kuna IE domineeris 2000. aastatel ega kasutanud igihaljast värskendusstrateegiat, on vanemad versioonid endiselt levinud.

2016. aastal kiirendas Microsoft IE dekomisjoneerimist, toetamise lõpetamine kümnes ja varasemad versioonid, piirdudes IE 11 toega. Ja üha enam on veebiarendajatel luksus IE ühilduvust ignoreerida.

Isegi jQuery lõpetas IE 8 ja vanemate toetamise alates aastast versioon 2.0, avaldatud 2013. aastal. Ja kuigi mõnel juhul on IE tugi endiselt vajalik, näiteks vanadel saitidel, tuleb selliseid olukordi ette üha harvemini.

Uued raamistikud

Alates jQuery tulekust on loodud palju raamistikke, sealhulgas kaasaegseid juhte Reageerima, nurgeline и Vue. Neil on jQuery ees kaks olulist eelist.

Esiteks muudavad need kasutajaliidese komponentideks eraldamise lihtsaks. Raamistikud on loodud lehtede renderdamiseks ja värskendamiseks. Ja jQueryt kasutatakse tavaliselt ainult värskendamiseks, jättes alglehe pakkumise serverile.

Teisest küljest võimaldavad React, Angular ja Vue komponendid HTML-i, koodi ja isegi CSS-i tihedalt siduda. Nii nagu jagame koodibaasi paljudeks iseseisvateks funktsioonideks ja klassideks, muudab liidese korduvkasutatavateks komponentideks jagamise võimalus lihtsamaks keerukate saitide loomise ja hooldamise.

Teiseks eeliseks on see, et uuemad raamistikud järgivad deklaratiivset paradigmat, mille puhul arendaja kirjeldab, milline peaks liides välja nägema ja jätab raamistiku hooleks kõik vajalikud muudatused, et soovitud saavutada. See lähenemine on vastuolus jQuery koodile iseloomuliku imperatiivse lähenemisviisiga.

JQuerys kirjutate muudatuste tegemiseks toimingud selgesõnaliselt üles. Ja deklaratiivses raamistikus ütlete: "Nende andmete kohaselt peaks liides välja nägema selline." See muudab veavaba koodi kirjutamise palju lihtsamaks.

Arendajad on võtnud kasutusele uued lähenemisviisid veebisaitide arendamiseks, mistõttu on jQuery populaarsus langenud.

Millal jQueryt kasutada?

Nii et millal peab olema kasutada jQueryt?

Kui projekti keerukus suureneb, siis on parem alustada mõnest muust raamatukogust või raamistikust, mis võimaldab keerukust mõtestatult juhtida. Näiteks jagage liides komponentideks. jQuery kasutamine sellistel saitidel võib esmapilgul hea tunduda, kuid see viib kiiresti spagettikoodini, kus te pole kindel, milline fragment millist lehe osa mõjutab.

Olen olnud sellises olukorras, kui üritan mingit muudatust teha, tundub see raske ülesandena. Te ei saa olla kindel, et te midagi ei riku, sest jQuery valijad sõltuvad serveri loodud HTML-i struktuurist.

Skaala teises otsas on lihtsad saidid, mis nõuavad vaid natuke interaktiivsust või dünaamilist sisu. Ka nendel juhtudel ei kasutaks ma vaikimisi jQueryt, sest natiivsete API-dega saate teha palju rohkem.

Isegi kui mul on vaja midagi võimsamat, siis otsin spetsiaalse raamatukogu, nt. aksioosid Ajaxi või Animate.css animatsioonide jaoks. See on lihtsam kui kogu jQuery laadimine väikese funktsiooni jaoks.

Arvan, et jQuery kasutamise parim põhjus on see, et see pakub veebisaidi esiotsa jaoks kõikehõlmavat funktsionaalsust. Erinevate natiivsete API-de või spetsiaalsete teekide õppimise asemel saate lugeda ainult jQuery dokumentatsiooni ja muutuda koheselt tootlikuks.

Imperatiivne lähenemine ei mastaap hästi, kuid seda on lihtsam õppida kui teiste raamatukogude deklaratiivset lähenemist. Selgelt piiratud võimalustega saidi jaoks on parem kasutada jQueryt ja töötada rahulikult: teek ei vaja keerulist kokkupanekut ega kompileerimist.

Lisaks on jQuery hea, kui olete kindel, et teie sait ei muutu aja jooksul keeruliseks, ja kui te ei hooli oma funktsioonidest, mis nõuab kindlasti rohkem koodi kirjutamist kui jQuery.

Seda teeki saate kasutada ka siis, kui teil on vaja IE vanemaid versioone toetada. Siis teenindab jQuery teid nagu omal ajal, kui IE oli kõige populaarsem brauser.

Väljavaated

jQuery ei kao niipea. Ta aktiivselt arenema, ja paljud arendajad eelistavad kasutada selle API-t, isegi kui natiivsed meetodid on saadaval. Teek on aidanud tervel põlvkonnal arendajatel luua veebisaite, mis töötavad mis tahes brauseriga. Kuigi see on paljuski asendatud uute teekide, raamistike ja paradigmadega, on jQuery mänginud kaasaegse veebi loomisel tohutult positiivset rolli.

Kui jQuery funktsionaalsus oluliselt ei muutu, on tõenäoline, et teegi kasutus väheneb järgmistel aastatel aeglaselt, kuid pidevalt. Uute veebisaitide loomisel kasutatakse algusest peale kaasaegsemaid raamistikke ja jQuery jaoks sobivad kasutusjuhud muutuvad üha harvemaks.

Mõnele inimesele ei meeldi veebiarendustööriistade aegumise kiirus, kuid minu jaoks on see tõend kiirest arengust. jQuery on võimaldanud meil palju asju paremini teha. Sama kehtib ka tema järeltulijate kohta.

Allikas: www.habr.com

Lisa kommentaar