jQuery -
Ale v posledních letech se jeho status předního nástroje pro vývoj webu narušil. Podívejme se, proč se jQuery stal populárním a proč vyšel z módy a také v jakých případech je stále vhodné jej používat k tvorbě moderních webových stránek.
Stručná historie jQuery
John Resig (
jQuery je Javascriptová knihovna založená na mottu: Kódování Javascriptu by mělo být zábavné. jQuery přebírá běžné, opakující se úkoly, odstraňuje všechny zbytečné značky a dělá je krátkými, elegantními a čistými.
jQuery má dvě hlavní výhody. První je pohodlné API pro manipulaci s webovými stránkami. Zejména poskytuje výkonné metody pro výběr prvků. Nejen, že můžete vybírat podle ID nebo třídy, jQuery vám umožňuje psát složité výrazy, například pro výběr prvků na základě jejich vztahů s jinými prvky:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Postupem času se z mechanismu výběru stala samostatná knihovna
Druhou výhodou knihovny bylo, že abstrahovala rozdíly mezi prohlížeči. V těch letech bylo těžké napsat kód, který by mohl spolehlivě fungovat ve všech prohlížečích.
Nedostatek standardizace znamenal, že vývojáři museli počítat s četnými rozdíly mezi prohlížeči a okrajovými případy. Podívejte se na
// 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 díky jQuery mohli vývojáři přesunout starosti se všemi těmito nástrahami na bedra týmu vyvíjejícího knihovnu.
Později jQuery usnadnil implementaci složitějších technologií, jako jsou animace a Ajax. Knihovna se prakticky stala standardní závislostí webových stránek. A dnes pohání obrovskou část internetu. W3Techs tomu věří
Kontrola nad vývojem jQuery se také více formalizovala. V roce 2011 tým
V roce 2015 se nadace jQuery sloučila s nadací Dojo,
Měnící se okolnosti
Nicméně v posledních letech jQuery
Prohlížeče
Z mnoha důvodů jsou rozdíly a omezení v prohlížečích méně důležité. Za prvé se zlepšila standardizace. Hlavní vývojáři prohlížečů (Apple, Google, Microsoft a Mozilla) spolupracují na vývoji
Přestože se prohlížeče od sebe v mnoha důležitých ohledech stále liší, mají prodejci alespoň prostředky k vyhledávání a vytváření společné databáze namísto
// 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);
});
Metody
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Nyní můžete manipulovat s třídami prvků pomocí
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Tato stránka
Použití nativních funkcí zlepšuje výkon stránky. Mnoho
Druhým důvodem je, že se prohlížeče aktualizují mnohem rychleji než dříve. Většina z nich používá
To znamená, že nové funkce prohlížeče a opravy chyb jsou distribuovány mnohem rychleji a vývojáři nemusí čekat, až bude
Třetím důvodem je, že Internet Explorer se blíží stavu naprosté irelevance. IE je již dlouho prokletím vývoje webu po celém světě. Jeho chyby byly rozšířené, a protože IE dominovalo 2000 a nepoužívalo evergreenovou aktualizační strategii, starší verze jsou stále běžné.
V roce 2016 Microsoft urychlil vyřazení IE,
Dokonce i jQuery přestalo podporovat IE 8 a nižší počínaje
Nové rámce
Od příchodu jQuery bylo vytvořeno mnoho frameworků, včetně moderních lídrů
Za prvé, usnadňují rozdělení uživatelského rozhraní na komponenty. Rámce jsou navrženy tak, aby zvládaly vykreslování a aktualizaci stránek. A jQuery se obvykle používá pouze pro aktualizaci, přičemž úkol poskytnout počáteční stránku ponechává serveru.
Na druhou stranu komponenty React, Angular a Vue umožňují těsně propojit HTML, kód a dokonce i CSS. Stejně jako rozdělujeme kódovou základnu do mnoha samostatných funkcí a tříd, možnost rozdělit rozhraní na opakovaně použitelné komponenty usnadňuje vytváření a údržbu složitých webů.
Druhou výhodou je, že novější frameworky dodržují deklarativní paradigma, ve kterém vývojář popisuje, jak by mělo rozhraní vypadat, a nechává na frameworku, aby provedl všechny potřebné změny k dosažení požadovaného. Tento přístup je v rozporu s imperativním přístupem, který charakterizuje kód jQuery.
V jQuery si výslovně zapíšete kroky k provedení jakýchkoli změn. A v deklarativním rámci řeknete: "Podle těchto údajů by rozhraní mělo vypadat takto." To může značně usnadnit psaní kódu bez chyb.
Vývojáři přijali nové přístupy k vývoji webových stránek, a proto se popularita jQuery snížila.
Kdy použít jQuery?
Takže když by používat jQuery?
Pokud se zvyšuje složitost projektu, pak je lepší začít s jinou knihovnou nebo frameworkem, který umožňuje smysluplně řídit složitost. Například rozdělte rozhraní na komponenty. Používání jQuery na takových stránkách může zpočátku vypadat dobře, ale rychle povede ke špagetovému kódu, kde si nejste jisti, který fragment ovlivňuje kterou část stránky.
Byl jsem v takové situaci, když se snažím udělat jakoukoli změnu, připadá mi to jako obtížný úkol. Nemůžete si být jisti, že nic neporušíte, protože selektory jQuery závisí na struktuře HTML generované serverem.
Na druhém konci žebříčku jsou jednoduché weby, které vyžadují jen trochu interaktivity nebo dynamického obsahu. Ani v těchto případech bych nepoužil jQuery, protože s nativními API můžete dělat mnohem víc.
I kdybych potřeboval něco výkonnějšího, poohlédnu se po specializované knihovně, kupř.
Myslím, že nejlepším důvodem pro použití jQuery je to, že poskytuje komplexní funkce pro přední část webu. Místo učení různých nativních rozhraní API nebo specializovaných knihoven si můžete přečíst pouze dokumentaci jQuery a okamžitě se stát produktivními.
Imperativní přístup není dostatečně škálovatelný, ale je snazší se ho naučit než deklarativní přístup jiných knihoven. Pro web s jasně omezenými možnostmi je lepší použít jQuery a pracovat v klidu: knihovna nevyžaduje složité sestavení ani kompilaci.
Kromě toho je jQuery dobré, pokud jste si jisti, že se váš web časem nezkomplikuje, a pokud vám nezáleží na nativní funkčnosti, která bude jistě vyžadovat napsání více kódu než jQuery.
Tuto knihovnu můžete také použít, pokud potřebujete podporovat starší verze IE. Pak vám jQuery bude sloužit jako v dobách, kdy byl IE nejoblíbenějším prohlížečem.
prospekce
jQuery v dohledné době nezmizí. Ona
Pokud se funkce jQuery výrazně nezmění, je pravděpodobné, že využití knihovny bude v příštích několika letech nadále pomalu, ale neustále klesat. Nové webové stránky mají tendenci být od začátku vytvářeny pomocí modernějších frameworků a vhodné případy použití pro jQuery jsou stále vzácnější.
Některým lidem se nelíbí rychlost, s jakou nástroje pro vývoj webových aplikací zastarávají, ale pro mě je to důkaz rychlého pokroku. jQuery nám umožnil dělat spoustu věcí lépe. Totéž platí pro její nástupce.
Zdroj: www.habr.com