Historia i dziedzictwo jQuery

Historia i dziedzictwo jQuery
jQuery - to jest najpopularniejsze na świecie biblioteka JavaScript. Społeczność twórców stron internetowych stworzyła go pod koniec XXI wieku, co zaowocowało bogatym ekosystemem witryn, wtyczek i frameworków wykorzystujących pod maską 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 (Johna Resiga) stworzył pierwszą wersję biblioteki w 2005 roku, oraz opublikowany w 2006 roku-m, na wydarzeniu o nazwie BarCampNYC. NA Oficjalna strona jQuery autor napisał:

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ą Trzask.

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 ten wczesny kod źródłowy jQuery i wyszukaj jQuery.browser. Oto jeden przykład:

// 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 74% witryn korzysta obecnie z jQuery.

Bardziej sformalizowana została także kontrola nad rozwojem jQuery. W 2011 roku zespół utworzył tablicę jQuery. A w 2012 roku tablica jQuery przekształciła się w Fundację jQuery.

W 2015 roku Fundacja jQuery połączyła się z Fundacją Dojo, do utworzenia Fundacji JS, która następnie połączyła się z Fundacją Node.js w 2019-m, aby utworzyć Fundacja OpenJS, w ramach którego jQuery było jednym z „przełomowe projekty".

Zmieniające się okoliczności

Jednak w ostatnich latach jQuery straciła popularność. GitHub usunąłem bibliotekę z frontonu mojej witryny. Bootstrap v5 pozbądź się jQuerybo to jego”największa zależność klienta dla zwykłego JavaScript„(obecnie rozmiar 30 KB, zminimalizowany i spakowany). Kilka trendów w tworzeniu stron internetowych osłabiło pozycję jQuery jako niezbędnego narzędzia.

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 standardy sieciowe w ramach Grupa robocza ds. technologii aplikacji hipertekstowych w sieci Web.
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 permanentna wojna razem. W związku z tym interfejsy API przeglądarki zyskały nowe możliwości. Np, Fetch API zdolny do zastąpienia funkcji 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);
    });

Metody zapytanieSelektor и zapytanieSelectorAll zduplikowane selektory jQuery:

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

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

Możesz teraz manipulować klasami elementów za pomocą lista klas:

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

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

Strona Możesz nie potrzebować jQuery Oto kilka kolejnych sytuacji, w których kod jQuery można zastąpić kodem natywnym. Niektórzy programiści zawsze trzymają się jQuery, ponieważ po prostu nie wiedzą o nowych interfejsach API, ale kiedy to robią, rzadziej zaczynają korzystać z biblioteki.

Korzystanie z funkcji natywnych poprawia wydajność strony. Wiele efekty animacji z jQuery teraz możesz wdrożyć o wiele bardziej skuteczny za pomocą CSS.

Drugim powodem jest to, że przeglądarki są aktualizowane znacznie szybciej niż wcześniej. Większość z nich korzysta „wiecznie zieloną” strategię odnowy, z wyjątkiem Apple Safari. Można je aktualizować w tle bez udziału użytkownika i nie są powiązane z aktualizacjami systemu operacyjnego.

Oznacza to, że nowe funkcje przeglądarki i poprawki błędów są dystrybuowane znacznie szybciej, a programiści nie muszą czekać, aż Mogę uzyć osiągnie akceptowalny poziom. Mogą śmiało korzystać z nowych funkcji i interfejsów API bez konieczności pobierania jQuery lub Polyfills.

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, przestać wspierać dziesiątej i wcześniejszych, ograniczając obsługę do IE 11. Coraz częściej twórcy stron internetowych mają luksus ignorowania kompatybilności z IE.

Nawet jQuery przestało wspierać IE 8 i starsze wersje, zaczynając od wersja 2.0, opublikowane w 2013 roku. I chociaż w niektórych przypadkach nadal wymagana jest obsługa IE, np. na starszych stronach, takie sytuacje zdarzają się coraz rzadziej.

Nowe frameworki

Od czasu pojawienia się jQuery powstało wiele frameworków, w tym nowoczesnych liderów React, Angular и Vue. Mają dwie ważne zalety w porównaniu z jQuery.

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. aksjos dla Ajaksu lub Animate.css do animacji. Będzie to łatwiejsze niż ładowanie całego jQuery dla małej funkcjonalności.

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 aktywnie się rozwija, a wielu programistów woli korzystać z jego interfejsu API, nawet jeśli dostępne są metody natywne. Biblioteka pomogła całemu pokoleniu programistów tworzyć strony internetowe działające w dowolnej przeglądarce. Chociaż został zastąpiony na wiele sposobów przez nowe biblioteki, frameworki i paradygmaty, jQuery odegrał niezwykle pozytywną rolę w tworzeniu nowoczesnej sieci.

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

Dodaj komentarz