História a dedičstvo jQuery

História a dedičstvo jQuery
jQuery - toto je najpopulárnejšie na svete knižnica JavaScript. Komunita webových vývojárov ho vytvorila koncom 2000-tych rokov, výsledkom čoho je bohatý ekosystém stránok, doplnkov a rámcov využívajúcich jQuery pod kapotou.

Ale v posledných rokoch sa jeho postavenie ako popredného nástroja na vývoj webu narušilo. Pozrime sa, prečo sa jQuery stal populárnym a prečo vyšiel z módy a tiež v akých prípadoch je stále vhodné ho používať na tvorbu moderných webov.

Stručná história jQuery

John Resig (Ján Resig) vytvoril prvú verziu knižnice v roku 2005 a uverejnené v roku 2006-m, na podujatí s názvom BarCampNYC. Zapnuté oficiálna stránka jQuery autor napísal:

jQuery je knižnica Javascript založená na motte: Kódovanie Javascriptu by malo byť zábavné. jQuery preberá bežné, opakujúce sa úlohy, odstraňuje všetky nepotrebné značky a robí ich krátkymi, elegantnými a čistými.

jQuery má dve hlavné výhody. Prvým je pohodlné API na manipuláciu s webovými stránkami. Poskytuje najmä výkonné metódy na výber prvkov. Nielenže môžete vyberať podľa ID alebo triedy, jQuery vám umožňuje písať zložité výrazy, napríklad na výber prvkov na základe ich vzťahov s inými prvkami:

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

Postupom času sa mechanizmus výberu vyvinul do samostatnej knižnice prskanie.

Druhou výhodou knižnice bolo, že abstrahovala rozdiely medzi prehliadačmi. V tých rokoch bolo ťažké napísať kód, ktorý by mohol spoľahlivo fungovať vo všetkých prehliadačoch.

Nedostatok štandardizácie znamenal, že vývojári museli počítať s mnohými rozdielmi medzi prehliadačmi a okrajovými prípadmi. Pozri sa na tento skorý zdrojový kód jQuery a vyhľadajte jQuery.browser. Tu je jeden príklad:

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

A vďaka jQuery mohli vývojári presunúť starosti so všetkými týmito nástrahami na plecia tímu, ktorý knižnicu vyvíja.

Neskôr jQuery uľahčil implementáciu zložitejších technológií, ako sú animácie a Ajax. Knižnica sa prakticky stala štandardnou závislosťou webových stránok. A dnes poháňa obrovskú časť internetu. W3Techs tomu verí 74 % stránok dnes používa jQuery.

Kontrola nad vývojom jQuery sa tiež viac formalizovala. V roku 2011 tím vytvoril jQuery Board. A v roku 2012 jQuery Board transformovaná na jQuery Foundation.

V roku 2015 sa nadácia jQuery spojila s nadáciou Dojo, vytvoriť JS Foundation, ktorá sa potom zlúčila s Node.js Foundation do 2019-m vytvárať Nadácia OpenJS, v rámci ktorej bol jQuery jedným z „prelomové projekty. »

Meniace sa okolnosti

Avšak v posledných rokoch jQuery stratil svoju popularitu. GitHub odstránil knižnicu z frontendu mojej stránky. Bootstrap v5 zbaviť sa jQuerylebo je to jeho"najväčšia závislosť klienta pre bežný JavaScript"(momentálne má veľkosť 30 kB, minifikované a zabalené). Niekoľko trendov vo vývoji webu oslabilo pozíciu jQuery ako nevyhnutného nástroja.

Prehliadače

Z mnohých dôvodov sú rozdiely a obmedzenia prehliadačov menej dôležité. Po prvé, zlepšila sa štandardizácia. Na vývoji spolupracujú hlavní vývojári prehliadačov (Apple, Google, Microsoft a Mozilla). webové štandardy v rámci Pracovná skupina pre technológiu webových hypertextových aplikácií.
Hoci sa prehliadače stále líšia v mnohých dôležitých smeroch, predajcovia majú aspoň prostriedky na vyhľadávanie a vytváranie spoločnej databázy namiesto permanentná vojna spolu. V súlade s tým získali rozhrania API prehliadača nové možnosti. napr. fetch API schopný nahradiť funkcie Ajax z 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);
    });

metódy querySelector и querySelectorAll duplicitné nástroje na výber jQuery:

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

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

Teraz môžete manipulovať s triedami prvkov pomocou classList:

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

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

Táto stránka Možno nebudete potrebovať jQuery Tu je niekoľko ďalších situácií, v ktorých je možné kód jQuery nahradiť natívnym kódom. Niektorí vývojári sa vždy držia jQuery, pretože jednoducho nevedia o nových API, ale keď to vedia, začnú používať knižnicu menej často.

Používanie natívnych funkcií môže zlepšiť výkon stránky. Veľa animačné efekty z jQuery teraz môžete implementovať oveľa efektívnejšie pomocou CSS.

Druhým dôvodom je, že prehliadače sa aktualizujú oveľa rýchlejšie ako predtým. Väčšina z nich používa „evergreen“ stratégie obnovy, s výnimkou Apple Safari. Môžu byť aktualizované na pozadí bez účasti používateľa a nie sú viazané na aktualizácie OS.

To znamená, že nové funkcie prehliadača a opravy chýb sa distribuujú oveľa rýchlejšie a vývojári nemusia čakať, kým sa Môžem použiť dosiahne prijateľnú úroveň. Môžu s istotou používať nové funkcie a rozhrania API bez sťahovania jQuery alebo polyfillov.

Tretím dôvodom je, že Internet Explorer sa blíži do stavu úplnej irelevantnosti. IE je už dlho prekliatím vývoja webu na celom svete. Jeho chyby boli rozšírené a keďže IE dominovalo v roku 2000 a nepoužívalo stratégiu evergreen aktualizácií, staršie verzie sú stále bežné.

V roku 2016 Microsoft urýchlil vyraďovanie IE, prestať podporovať desiata a staršia verzia, obmedzená na podporu pre IE 11. Weboví vývojári majú čoraz viac ten luxus ignorovať kompatibilitu s IE.

Dokonca aj jQuery prestal podporovať IE 8 a nižšie počnúc od verzia 2.0, publikované v roku 2013. A hoci v niektorých prípadoch je podpora IE stále potrebná, napríklad na starých stránkach, tieto situácie sa vyskytujú čoraz menej často.

Nové rámce

Od príchodu jQuery bolo vytvorených mnoho rámcov, vrátane moderných lídrov Reagovať, Hranatý и Vue. Oproti jQuery majú dve dôležité výhody.

Po prvé, uľahčujú rozdelenie používateľského rozhrania na komponenty. Rámce sú navrhnuté tak, aby zvládli vykresľovanie a aktualizáciu stránok. A jQuery sa zvyčajne používa iba na aktualizáciu, pričom úlohou poskytnúť úvodnú stránku je server.

Na druhej strane komponenty React, Angular a Vue vám umožňujú tesne prepojiť HTML, kód a dokonca aj CSS. Rovnako ako rozdeľujeme kódovú základňu do mnohých samostatných funkcií a tried, možnosť rozdeliť rozhranie na opakovane použiteľné komponenty uľahčuje vytváranie a údržbu zložitých stránok.

Druhou výhodou je, že novšie frameworky sa držia deklaratívnej paradigmy, v ktorej vývojár popisuje, ako by malo rozhranie vyzerať, a necháva to na framework, aby urobil všetky potrebné zmeny na dosiahnutie požadovaného. Tento prístup je v rozpore s imperatívnym prístupom, ktorý charakterizuje kód jQuery.

V jQuery si výslovne zapíšete kroky na vykonanie akýchkoľvek zmien. A v deklaratívnom rámci poviete: „Podľa týchto údajov by rozhranie malo vyzerať takto.“ To môže výrazne uľahčiť písanie kódu bez chýb.

Vývojári prijali nové prístupy k vývoju webových stránok, a preto sa popularita jQuery znížila.

Kedy použiť jQuery?

Takže keď musí byť používať jQuery?

Ak sa zložitosť projektu zvyšuje, potom je lepšie začať s inou knižnicou alebo rámcom, ktorý vám umožní zmysluplne riadiť zložitosť. Rozdeľte napríklad rozhranie na komponenty. Používanie jQuery na takýchto stránkach môže na prvý pohľad vyzerať dobre, ale rýchlo povedie ku kódu špagiet, pri ktorom si nie ste istí, ktorý fragment ovplyvňuje ktorú časť stránky.

Bol som v takejto situácii, keď sa snažím urobiť akúkoľvek zmenu, cítim sa ako ťažká úloha. Nemôžete si byť istí, že nič nepokazíte, pretože selektory jQuery závisia od štruktúry HTML generovanej serverom.

Na druhom konci rebríčka sú jednoduché stránky, ktoré vyžadujú len trochu interaktivity alebo dynamického obsahu. Ani v týchto prípadoch by som nepoužil jQuery, pretože s natívnymi API môžete urobiť oveľa viac.

Ak aj potrebujem niečo výkonnejšie, vyhľadám špecializovanú knižnicu, napr. Axios pre Ajax resp Animate.css pre animácie. Bude to jednoduchšie ako načítanie celého jQuery pre malú funkčnosť.

Myslím si, že najlepším dôvodom na používanie jQuery je to, že poskytuje komplexnú funkčnosť pre frontend webovej stránky. Namiesto učenia sa rôznych natívnych rozhraní API alebo špecializovaných knižníc si môžete prečítať iba dokumentáciu jQuery a stať sa okamžite produktívnymi.

Imperatívny prístup nie je dostatočne škálovateľný, ale je ľahšie sa ho naučiť ako deklaratívny prístup iných knižníc. Pre stránky s jasne obmedzenými možnosťami je lepšie použiť jQuery a pracovať pokojne: knižnica nevyžaduje zložité zostavovanie ani kompiláciu.

Okrem toho je jQuery dobré, ak ste si istí, že sa vaša stránka časom neskomplikuje, a ak sa nestaráte o natívnu funkčnosť, ktorá si určite bude vyžadovať napísanie väčšieho množstva kódu ako jQuery.

Túto knižnicu môžete použiť aj vtedy, ak potrebujete podporovať staršie verzie IE. Potom vám jQuery bude slúžiť ako v časoch, keď bol IE najpopulárnejším prehliadačom.

prospekce

jQuery tak skoro nezmizne. Ona aktívne rozvíjaťa mnohí vývojári radšej používajú jeho API, aj keď sú dostupné natívne metódy. Knižnica pomohla celej generácii vývojárov vytvoriť webové stránky, ktoré fungujú v akomkoľvek prehliadači. Aj keď bol v mnohých ohľadoch nahradený novými knižnicami, rámcami a paradigmami, jQuery zohral pri vytváraní moderného webu mimoriadne pozitívnu úlohu.

Pokiaľ sa funkcionalita jQuery výrazne nezmení, je pravdepodobné, že používanie knižnice bude v najbližších rokoch pomaly, ale neustále klesať. Nové webové stránky majú tendenciu byť od začiatku vytvárané pomocou modernejších rámcov a vhodné prípady použitia pre jQuery sú čoraz zriedkavejšie.

Niektorým ľuďom sa nepáči rýchlosť, akou nástroje na vývoj webových aplikácií zastarávajú, ale pre mňa je to dôkaz rýchleho pokroku. jQuery nám umožnilo robiť veľa vecí lepšie. To isté platí aj o jej nástupcoch.

Zdroj: hab.com

Pridať komentár