História a dedičstvo jQuery

História a dedičstvo jQuery
jQuery — to najpopulárnejšia JavaScript knižnica na svete. Komunita webových vývojárov ju vytvorila na konci 2000-tych rokov, čo viedlo k vzniku bohatého ekosystému webových stránok, pluginov a rámcov, ktoré používajú jQuery za oponou.

Ale v posledných rokoch jej status hlavného nástroja pre webový vývoj oslabol. Poďme sa pozrieť, prečo sa jQuery stala populárnou a prečo už nie je v móde, ako aj na prípady, v ktorých je stále rozumné ju používať na vytváranie moderných webových stránok.

Krátka história jQuery

John Resig (John Resig) vytvoril prvú verziu knižnice v roku 2005, a publikoval v roku 2006-om na podujatí nazvanom BarCampNYC. Na oficiálnej webovej stránke jQuery autor napísal:

jQuery — to je JavaScript knižnica, ktorej základný princip znie: Programovanie v JavaScripte by malo byť príjemné. jQuery berie často sa opakujúce úlohy, odstraňuje zbytočnú markup a robí ich krátkymi, elegantnými a prehľadnými.

jQuery má dve hlavné výhody. Prvá — to je pohodlné API na manipuláciu s webovými stránkami. Konkrétne poskytuje mocné metódy na výber prvkov. Môžete vyberať nielen podľa ID alebo tried, jQuery umožňuje písať zložité výrazy, napríklad na základe vzťahov medzi inými prvkami:

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

V priebehu času sa mechanizmus výberu stal samostatnou knižnicou Sizzle.

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

Nedostatok štandardizácie znamenal, že vývojári museli brať do úvahy mnohé rozdiely medzi prehliadačmi a okrajové prípady. Pozrite sa na tento raný zdrojový kód jQuery a hľadajte jQuery.browser. Tu je jeden z príkladov:

// 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 preniesť starosti o všetky tieto úskalia na plecia tímu, ktorý vyvíjal knižnicu.

Neskôr jQuery uľahčila implementáciu zložitejších technológií, ako sú animácie a Ajax. Knižnica sa v podstate stala štandardnou závislosťou pre webové stránky. A dnes zabezpečuje fungovanie obrovskej časti internetu. W3Techs považuje, že 74 % webových stránok dnes používa jQuery.

Kontrola nad vývojom jQuery sa taktiež stala formálnejšou. V roku 2011 tím vytvoril jQuery Board. A v roku 2012 sa jQuery Board pretransformovala na jQuery Foundation.

V roku 2015 sa jQuery Foundation zlúčil s Dojo Foundation, aby vytvoril JS Foundation, ktorá sa neskôr spojila s Node.js Foundation v 2019-om na vytvorenie OpenJS Foundation, v rámci ktorej bola jQuery jedným z „priekopníckych projektov.»

Mení sa situácia

Avšak v posledných rokoch jQuery stratilo určitú popularitu. GitHub odstránil knižnicu z frontendovej časti svojho webu. Bootstrap v5 sa zbaví jQuery, pretože je to jeho „najväčšia klientská závislosť pre bežný JavaScript“ (v súčasnosti veľkosť 30 kB, minifikovaná a zabalená). Niekoľko trendov vo webovom vývoji oslabilo pozíciu jQuery ako nevyhnutného nástroja.

Prehliadače

Z viacerých dôvodov sa rozdiely a obmedzenia prehliadačov stali menej dôležitými. Po prvé, zlepšila sa štandardizácia. Hlavní vývojári prehliadačov (Apple, Google, Microsoft a Mozilla) spolupracujú na webových štandardoch v rámci Web Hypertext Application Technology Working Group.
Hoci sa prehliadače stále líšia v niekoľkých dôležitých aspektoch, dodávatelia aspoň majú prostriedky na vyhľadávanie a vytváranie spoločnej základne namiesto permanentnej vojny navzájom. Zodpovedajúco, API prehliadačov získali nové možnosti. Napríklad, Fetch API je schopný nahradiť Ajax-funkcie 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 a querySelectorAll duplikujú prostriedky výberu z jQuery:

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

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

Manipulácia s triedami elementov je teraz možná pomocou classList:

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

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

Na stránke Nemusíte potrebovať jQuery je uvedené niekoľko ďalších situácií, kde je možné nahradiť kód jQuery natívnym kódom. Niektorí vývojári sa stále držia jQuery, pretože jednoducho nevedia o nových API, ale keď sa dozvedia, začínajú túto knižnicu používať menej.

Používanie natívnych funkcií umožňuje zvýšiť výkon stránok. Mnoho animovaných efektov z jQuery je teraz možné realizovať oveľa efektívnejšie pomocou CSS.

Dôvodom je, že prehliadače sa aktualizujú oveľa rýchlejšie ako predtým. Vo väčšine z nich sa uplatňuje „večná“ stratégia aktualizácie, s výnimkou Apple Safari. Môžu sa aktualizovať na pozadí bez zapojenia používateľa a nie sú viazané na aktualizácie OS.

To znamená, že nové možnosti prehliadačov a opravy chýb sa šíria oveľa rýchlejšie, a vývojári nemusia čakať, kým podiel Can I Use dosiahne prijateľnú úroveň. Môžu s dôverou využívať nové funkcie a API bez zaťaženia jQuery alebo polyfillov.

Tretím dôvodom je, že Internet Explorer sa blíži k stavu úplnej neaktuálnosti. IE je už dlho pohromou webového vývoja po celom svete. Typické chyby sa rozšírili, a keďže IE dominoval v 2000-tych rokoch a nemal "večnú" stratégiu aktualizácie, jeho staré verzie sú stále často používané.

V roku 2016 Microsoft urýchlil ukončenie podpory IE, prerušením podpory desiatej a starších verzií, obmedzujúc sa na podporu IE 11. A čoraz častejšie si weboví vývojári môžu dovoliť luxus ignorovania kompatibility s IE.

Dokonca aj jQuery prestal podporovať IE 8 a staršie od verzie 2.0, ktorá vyšla v roku 2013. A hoci v niektorých prípadoch je ešte potrebná podpora IE, napríklad na starých stránkach, takéto situácie vznikajú čoraz zriedkavejšie.

Nové frameworky

Od vzniku jQuery bolo vytvorených množstvo frameworkov, vrátane moderných lídrov React, Angular a Vue. Majú dve dôležité výhody oproti jQuery.

Po prvé, umožňujú jednoducho rozdeliť používateľské rozhranie na komponenty. Frameworky sú navrhnuté tak, aby spravovali vykresľovanie a aktualizáciu stránky. A jQuery sa zvyčajne používa iba na aktualizáciu, pričom na serveri zostáva úloha poskytnúť počiatočnú stránku.

Na druhej strane komponenty React, Angular a Vue umožňujú úzko prepojiť HTML, kód a dokonca aj CSS. Tak, ako delíme kódovú základňu na mnohé samostatné funkcie a triedy, tak aj možnosť rozdeliť rozhranie na opätovne použiteľné komponenty zjednodušuje zostavovanie a údržbu zložitých stránok.

Druhou výhodou je, že novšie frameworky dodržiavajú deklaratívnu paradigmu, v rámci ktorej vývojár opisuje, ako by malo vyzerať rozhranie, a vykonanie všetkých potrebných zmien na dosiahnutie želaného preberá framework. Tento prístup je v rozpore s imperatívnym prístupom, ktorý je charakteristický pre kód jQuery.

V jQuery uvádzate explicitne kroky na vykonanie akýchkoľvek zmien. A v deklaratívnom frameworku hovoríte: „Podľa týchto údajov by malo rozhranie vyzerať takto“. To môže značne uľahčiť písanie kódu bez chýb.

Vývojári si osvojili nové prístupy k vývoju webových stránok, čo spôsobilo pokles popularity jQuery.

Kedy použiť jQuery?

Tak kedy použiť použiť jQuery?

Ak zložitost projektu porastie, je lepšie začať s inou knižnicou alebo rámcom, ktorý umožňuje rozumne spravovať zložitosti. Napríklad rozdeľte rozhranie na komponenty. Používanie jQuery na takýchto stránkach môže spočiatku vyzerať akceptovateľne, ale rýchlo to povedie k vzniku spaghetti kódu, keď nebudete vedieť, ktorý fragment ovplyvňuje akú časť stránky.

Occol som sa v takej situácii, keď pri pokuse o akúkoľvek zmenu mám pocit, že to je náročná úloha. Nemôžete si byť istí, že nič nerozbíte, pretože selektory jQuery závisia od HTML štruktúry vytvorenej serverom.

Na druhej strane sú jednoduché stránky, ktoré vyžadujú len trošku interaktivity alebo dynamického obsahu. V takýchto prípadoch by som tiež nepoužíval jQuery ako default, pretože s natívnymi API sa dá dosiahnuť oveľa viac.

Aj keď budem potrebovať niečo mocnejšie, budem hľadať špecializovanú knižnicu, napríklad axios pre Ajax alebo Animate.css pre animácie. Bude to jednoduchšie ako načítať celé jQuery kvôli malej funkcionalite.

Myslím, že najlepším odôvodnením pre použitie jQuery je, že poskytuje komplexnú funkcionalitu pre prácu s frontendom webovej stránky. Namiesto štúdia rôznych natívnych API alebo špecializovaných knižníc môžete prečítať iba dokumentáciu jQuery a okamžite sa stať produktívnymi.

Imperaívny prístup sa zle škáluje, ale je jednoduchšie sa ho naučiť ako deklaratívny prístup iných knižníc. Pre webovú stránku s jasne obmedzenými možnosťami je lepšie použiť jQuery a pracovať v pokoji: knižnica nevyžaduje zložitú zostavu alebo kompiláciu.

Okrem toho je jQuery dobrou voľbou v prípade, ak si ste istí, že stránka v priebehu času nebude zložitá, a ak vás nezaujíma natívna funkcionalita, ktorá určite vyžaduje napísať viac kódu ako jQuery.

Taktiež môžete túto knižnicu použiť, ak potrebujete podporovať staršie verzie IE. Vtedy vám jQuery poslúži ako v čase, keď bol IE najpopulárnejším prehliadačom.

Pohľad do budúcnosti

jQuery sa ešte dlho nestratí. Ona aktívne sa vyvíja, a mnohí vývojári preferujú používať jej API, aj keď sú k dispozícii natívne metódy. Knižnica pomohla celej generácii vývojárov vytvárať webové stránky, ktoré fungujú vo všetkých prehliadačoch. A hoci ju v mnohých aspektoch nahradili nové knižnice, rámce a paradigmy, jQuery zohrala obrovskú pozitívnu úlohu pri vytváraní moderného webu.

Ak sa funkčnosť jQuery výrazne nezmení, je veľmi pravdepodobné, že v najbližších niekoľkých rokoch bude používanie tejto knižnice naďalej pomaly, ale iste klesať. Nové webové stránky sa zvyčajne vytvárajú od začiatku pomocou modernejších rámcov a vhodné scenáre použitia jQuery sa vyskytujú čoraz menej.

Niektorým sa nepáči intenzita zastarávania nástrojov pre webový vývoj, ale pre mňa je to dôkazom rýchleho pokroku. jQuery nám umožnila robiť mnoho vecí lepšie. To isté platí aj pre jej nástupcov.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster