jQuery -
Jednak w ostatnich latach jego status głównego narzędzia do tworzenia stron internetowych uległ erozji. Przyjrzyjmy się, dlaczego jQuery stało się popularne i dlaczego wyszło z mody, a także w jakich przypadkach nadal warto go używać do tworzenia nowoczesnych stron internetowych.
Krótka historia jQuery
John Resig (
jQuery to biblioteka Javascript oparta na motcie: Kodowanie w JavaScript powinno sprawiać przyjemność. jQuery wykonuje typowe, powtarzalne zadania, usuwa wszystkie niepotrzebne znaczniki i sprawia, że są krótkie, eleganckie i przejrzyste.
jQuery ma dwie główne zalety. Pierwszy to wygodne API do manipulowania stronami internetowymi. W szczególności zapewnia zaawansowane metody wybierania elementów. Nie tylko możesz wybierać według identyfikatora lub klasy, jQuery umożliwia pisanie złożonych wyrażeń, na przykład wybieranie elementów na podstawie ich relacji z innymi elementami:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Z biegiem czasu mechanizm selekcji stał się odrębną biblioteką
Drugą zaletą biblioteki było to, że wyodrębniała różnice między przeglądarkami. W tamtych latach trudno było napisać kod, który działałby niezawodnie we wszystkich przeglądarkach.
Brak standaryzacji oznaczał, że programiści musieli uwzględnić liczne różnice między przeglądarkami a obudowami brzegowymi. Spojrzeć 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 dzięki jQuery programiści mogli przenieść obawy związane z tymi wszystkimi pułapkami na barki zespołu opracowującego bibliotekę.
Później jQuery ułatwiło wdrażanie bardziej złożonych technologii, takich jak animacje i Ajax. Biblioteka faktycznie stała się standardową zależnością dla stron internetowych. A dziś zasila ogromną część Internetu. W3Techs w to wierzy
Bardziej sformalizowana została także kontrola nad rozwojem jQuery. W 2011 roku zespół
W 2015 roku Fundacja jQuery połączyła się z Fundacją Dojo,
Zmieniające się okoliczności
Jednak w ostatnich latach jQuery
Przeglądarki
Z wielu powodów różnice i ograniczenia przeglądarek stały się mniej istotne. Po pierwsze, poprawiła się standaryzacja. Główni twórcy przeglądarek (Apple, Google, Microsoft i Mozilla) współpracują nad rozwojem
Chociaż przeglądarki nadal różnią się od siebie pod wieloma istotnymi względami, dostawcy mają przynajmniej możliwość wyszukiwania i tworzenia wspólnej bazy danych zamiast
// 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');
Możesz teraz manipulować klasami elementów za pomocą
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Strona
Korzystanie z funkcji natywnych poprawia wydajność strony. Wiele
Drugim powodem jest to, że przeglądarki są aktualizowane znacznie szybciej niż wcześniej. Większość z nich korzysta
Oznacza to, że nowe funkcje przeglądarki i poprawki błędów są dystrybuowane znacznie szybciej, a programiści nie muszą czekać, aż
Trzecim powodem jest to, że Internet Explorer zbliża się do stanu całkowitej nieistotności. IE od dawna jest zmorą rozwoju stron internetowych na całym świecie. Błędy były powszechne, a ponieważ w pierwszej dekadzie XXI wieku dominował IE i nie stosował strategii ciągłych aktualizacji, starsze wersje są nadal powszechne.
W 2016 roku Microsoft przyspieszył likwidację IE,
Nawet jQuery przestało wspierać IE 8 i starsze wersje, zaczynając od
Nowe frameworki
Od czasu pojawienia się jQuery powstało wiele frameworków, w tym nowoczesnych liderów
Po pierwsze, ułatwiają podział interfejsu użytkownika na komponenty. Frameworki są zaprojektowane do obsługi renderowania i aktualizacji stron. A jQuery zwykle służy tylko do aktualizacji, pozostawiając zadanie dostarczenia strony początkowej serwerowi.
Z drugiej strony komponenty React, Angular i Vue pozwalają na ścisłe powiązanie HTML, kodu, a nawet CSS. Tak jak dzielimy bazę kodu na wiele samodzielnych funkcji i klas, tak możliwość podziału interfejsu na komponenty wielokrotnego użytku ułatwia budowanie i utrzymywanie złożonych witryn.
Drugą zaletą jest to, że nowsze frameworki opierają się na paradygmacie deklaratywnym, w którym programista opisuje, jak powinien wyglądać interfejs i pozostawia frameworkowi wprowadzenie wszystkich niezbędnych zmian, aby osiągnąć to, co jest pożądane. Podejście to jest sprzeczne z podejściem imperatywnym, które charakteryzuje kod jQuery.
W jQuery wyraźnie zapisujesz kroki, aby wprowadzić zmiany. A w ramach deklaratywnych mówisz: „Według tych danych interfejs powinien wyglądać tak”. Może to znacznie ułatwić pisanie kodu wolnego od błędów.
Programiści przyjęli nowe podejście do tworzenia stron internetowych, dlatego popularność jQuery spadła.
Kiedy używać jQuery?
Więc kiedy musi być używać jQuery?
Jeśli złożoność projektu wzrasta, lepiej zacząć od innej biblioteki lub frameworku, który pozwala w znaczący sposób zarządzać złożonością. Na przykład podziel interfejs na komponenty. Używanie jQuery w takich witrynach może początkowo wyglądać dobrze, ale szybko doprowadzi do kodu spaghetti, w którym nie będziesz pewien, który fragment wpływa na którą część strony.
Byłem w takiej sytuacji, gdy próbowałem dokonać jakiejkolwiek zmiany, wydawało mi się to trudnym zadaniem. Nie możesz być pewien, że niczego nie zepsujesz, ponieważ selektory jQuery zależą od struktury HTML wygenerowanej przez serwer.
Na drugim końcu skali znajdują się proste witryny, które wymagają jedynie odrobiny interaktywności lub dynamicznej zawartości. W tych przypadkach również nie korzystałbym domyślnie z jQuery, ponieważ dzięki natywnym interfejsom API można zrobić o wiele więcej.
Nawet jeśli będę potrzebował czegoś mocniejszego, to poszukam specjalistycznej biblioteki, np.
Myślę, że najlepszym uzasadnieniem używania jQuery jest to, że zapewnia wszechstronną funkcjonalność interfejsu strony internetowej. Zamiast uczyć się różnych natywnych interfejsów API lub wyspecjalizowanych bibliotek, możesz przeczytać tylko dokumentację jQuery i od razu zacząć produktywnie.
Podejście imperatywne nie skaluje się dobrze, ale jest łatwiejsze do nauczenia niż podejście deklaratywne w innych bibliotekach. W przypadku witryny o wyraźnie ograniczonych możliwościach lepiej skorzystać z jQuery i pracować spokojnie: biblioteka nie wymaga skomplikowanego montażu ani kompilacji.
Dodatkowo jQuery sprawdzi się, jeśli masz pewność, że Twoja witryna nie będzie się komplikować z biegiem czasu i nie zależy Ci na natywnej funkcjonalności, która z pewnością będzie wymagała pisania większej ilości kodu niż jQuery.
Możesz także użyć tej biblioteki, jeśli chcesz obsługiwać starsze wersje IE. Wtedy jQuery będzie Ci służyć tak, jak w czasach, gdy IE był najpopularniejszą przeglądarką.
Poszukiwania
jQuery nie zniknie w najbliższym czasie. Ona
O ile funkcjonalność jQuery nie zmieni się znacząco, prawdopodobne jest, że w ciągu najbliższych kilku lat wykorzystanie biblioteki będzie powoli, ale systematycznie spadać. Nowe strony internetowe są zwykle budowane od początku przy użyciu nowocześniejszych frameworków, a odpowiednie przypadki użycia jQuery stają się coraz rzadsze.
Niektórym nie podoba się tempo, w jakim narzędzia do tworzenia stron internetowych stają się przestarzałe, ale dla mnie jest to dowód szybkiego postępu. jQuery pozwoliło nam robić wiele rzeczy lepiej. To samo tyczy się jej następców.
Źródło: www.habr.com