jQuery Geschicht a Legacy

jQuery Geschicht a Legacy
jQuery - dëst ass de beléifsten an der Welt eng JavaScript Bibliothéik. D'Webentwécklungsgemeinschaft huet et an de spéiden 2000er erstallt, wat zu engem räiche Ökosystem vu Siten, Plugins a Kaderen resultéiert mat jQuery ënner der Hood.

Awer an de leschte Joeren ass säi Status als Premier Tool fir Webentwécklung erodéiert. Loosst eis kucken firwat jQuery populär gouf a firwat et aus der Moud gefall ass, an och a wéi enge Fäll et nach ëmmer ubruecht ass et ze benotzen fir modern Websäiten ze kreéieren.

Eng kuerz Geschicht vu jQuery

John Resig (John Resch) déi éischt Versioun vun der Bibliothéik am Joer 2005 erstallt, an 2006 publizéiert-m, bei engem Event genannt BarCampNYC. Op jQuery offiziell Websäit den Auteur huet geschriwwen:

jQuery ass eng Javascript-Bibliothéik baséiert op dem Motto: Javascript soll lëschteg sinn ze codéieren. jQuery hëlt gemeinsam, repetitive Aufgaben, Sträifen all onnéideg Markup, a mécht se kuerz, elegant, a propper.

jQuery huet zwee Haaptvirdeeler. Déi éischt ass eng praktesch API fir Websäiten ze manipuléieren. Besonnesch bitt et mächteg Methoden fir Elementer ze wielen. Net nëmme kënnt Dir duerch ID oder Klass auswielen, jQuery erlaabt Iech komplex Ausdréck ze schreiwen, zum Beispill Elementer auswielen op Basis vun hire Relatiounen mat aneren Elementer:

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

Mat der Zäit gouf de Selektiounsmechanismus eng separat Bibliothéik Séissel.

Den zweete Virdeel vun der Bibliothéik war datt et Differenzen tëscht Browser abstrakéiert huet. An deene Jore war et schwéier Code ze schreiwen, deen zouverlässeg an all Browser funktionnéiert.

De Mangel u Standardiséierung huet gemengt datt d'Entwéckler fir vill Differenzen tëscht Browser a Randfäegkeete musse berücksichtegen. Maacht e Bléck op dëser fréi jQuery Quelltext a Sich no jQuery.browser. Hei ass e Beispill:

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

An dank jQuery kënnen d'Entwéckler d'Suergen iwwer all dës Falen op d'Schëllere vun der Équipe verréckelen, déi d'Bibliothéik entwéckelt.

Méi spéit huet jQuery et méi einfach gemaach fir méi komplex Technologien wéi Animatiounen an Ajax ëmzesetzen. D'Bibliothéik ass effektiv eng Standardabhängegkeet fir Websäite ginn. An haut mécht et e groussen Deel vum Internet. W3Techs mengt dat 74% vun de Siten haut benotzen jQuery.

Kontroll iwwer jQuery Entwécklung ass och méi formaliséiert ginn. Am Joer 2011 huet d'Equipe geschaf jQuery Verwaltungsrot. An 2012 jQuery Verwaltungsrot transforméiert an jQuery Foundation.

Am 2015 huet d'jQuery Foundation mat der Dojo Foundation fusionéiert, JS Foundation ze kreéieren, déi dann mat der Node.js Foundation fusionéiert an 2019-m ze schafen OpenJS Fondatioun, an deem jQuery ee vun de "Duerchbroch Projeten. "

Änneren Ëmstänn

Wéi och ëmmer, an de leschte Joeren jQuery verluer seng Popularitéit. GitHub huet d'Bibliothéik vum Frontend vu mengem Site ewechgeholl. Bootstrap v5 loszuwerden jQuerywell et ass säi "gréisste Client Ofhängegkeet fir regelméisseg JavaScript"(aktuell 30 KB grouss, minifizéiert a gepackt). Verschidde Trends an der Webentwécklung hunn dem jQuery seng Positioun als e wesentlecht Tool geschwächt.

Browser

Aus e puer Grënn sinn Browser Differenzen a Aschränkungen manner wichteg ginn. Als éischt ass d'Standardiséierung verbessert. Grouss Browser Entwéckler (Apple, Google, Microsoft a Mozilla) schaffen zesummen fir z'entwéckelen Web Standarden am Kader Web Hypertext Application Technology Working Group.
Och wann d'Browser nach ëmmer op enger Rei vu wichtege Weeër vuneneen ënnerscheeden, hunn d'Verkeefer op d'mannst e Mëttel fir eng gemeinsam Datebank ze sichen an ze kreéieren anstatt permanente Krich zesummen. Deementspriechend hunn Browser APIs nei Fäegkeeten kritt. zB, API erofhuelen fäeg Ajax Funktiounen aus jQuery z'ersetzen:

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

Methoden querySelector и querySelectorAll duplizéiert jQuery Picker:

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

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

Dir kënnt elo Element Klassen manipuléieren benotzt klassLëscht:

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

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

Op der Säit Dir braucht vläicht net jQuery Hei sinn e puer méi Situatiounen an deenen jQuery Code kann duerch gebierteg Code ersat ginn. E puer Entwéckler bleiwen ëmmer mat jQuery well se einfach net iwwer déi nei APIe wëssen, awer wann se et maachen, fänken se un d'Bibliothéik manner dacks ze benotzen.

Mat native Features verbessert d'Performance vun der Säit. Vill Animatioun Effekter vun jQuery elo kënnt Dir ëmsetzen vill méi effektiv benotzt CSS.

Den zweete Grond ass datt d'Browser vill méi séier aktualiséiert ginn wéi virdrun. Déi meescht vun hinnen benotzen "evergreen" Erneierungsstrategie, mat Ausnam vun Apple Safari. Si kënnen am Hannergrond aktualiséiert ginn ouni Benotzerbedeelegung a sinn net un OS Updates gebonnen.

Dat heescht, datt nei Browser Fonctiounen a Bugfixes vill méi séier verdeelt ginn, an Entwéckler mussen net waarden bis de Kann ech Gebrauch maachen wäert en akzeptablen Niveau erreechen. Si kënnen zouversiichtlech nei Fonctiounen an APIen benotzen ouni jQuery oder polyfills erofzelueden.

Den drëtte Grond ass datt Internet Explorer e Staat vu kompletter Irrelevanz kënnt. IE ass laang de Bann vun der Webentwécklung ronderëm d'Welt. Seng Bugs ware verbreet, a well IE d'2000er dominéiert huet an keng ëmmergréng Updatestrategie benotzt huet, sinn eeler Versiounen nach ëmmer heefeg.

Am Joer 2016 huet Microsoft d'Decommissioning vun IE beschleunegt, ophalen ze ënnerstëtzen zéngten a fréiere Versiounen, limitéiert op Ënnerstëtzung fir IE 11. An ëmmer méi, Web Entwéckler hunn de Luxus vun IE Kompatibilitéit ignoréieren.

Souguer jQuery gestoppt IE 8 an ënnen zanter ënnerstëtzen Versioun 2.0, 2013 publizéiert. An och wann an e puer Fäll nach ëmmer IE-Ënnerstëtzung erfuerderlech ass, zum Beispill op eelere Siten, entstinn dës Situatiounen ëmmer manner.

Nei Kaderen

Zënter dem Advent vun jQuery si vill Kaderen erstallt ginn, dorënner modern Leader reagéieren, dréiende и Vue. Si hunn zwee wichteg Virdeeler iwwer jQuery.

Als éischt maachen se et einfach d'Benotzerinterface a Komponenten ze trennen. Frameworks sinn entwéckelt fir Säit Rendering an Aktualiséierung ze handhaben. An jQuery gëtt normalerweis nëmme fir d'Aktualiséierung benotzt, a léisst d'Aufgab fir déi initial Säit op de Server ze liwweren.

Op der anerer Säit, React, Angular a Vue Komponenten erlaben Iech HTML, Code a souguer CSS enk ze koppelen. Just wéi mir d'Codebasis a vill selbststänneg Funktiounen a Klassen opdeelen, mécht d'Fäegkeet fir d'Interface an reusable Komponenten opzedeelen et méi einfach ze bauen an komplexe Siten z'erhalen.

Deen zweete Virdeel ass datt méi rezent Kaderen un engem deklarativen Paradigma hänken, an deem den Entwéckler beschreift wéi d'Interface soll ausgesinn a léisst et dem Kader fir all déi néideg Ännerungen ze maachen fir ze erreechen wat gewënscht ass. Dës Approche ass am Géigesaz zu der imperativer Approche déi jQuery Code charakteriséiert.

An jQuery schreift Dir explizit d'Schrëtt op fir Ännerungen ze maachen. An an engem deklarative Kader seet Dir: "Laut dësen Donnéeën soll d'Interface esou ausgesinn." Dëst kann d'Schreiwen vun bug-gratis Code vill méi einfach maachen.

Entwéckler hunn nei Approche fir Websäitentwécklung ugeholl, dofir ass d'JQuery Popularitéit erofgaang.

Wéini benotzt jQuery?

Also wann muss benotzen jQuery?

Wann d'Komplexitéit vum Projet eropgeet, ass et besser mat enger anerer Bibliothéik oder Kader unzefänken, déi Iech erlaabt d'Komplexitéit sënnvoll ze managen. Zum Beispill, deelen d'Interface an Komponenten. D'Benotzung vun jQuery op esou Siten kann am Ufank gutt ausgesinn, awer et wäert séier zu Spaghetti-Code féieren, wou Dir net sécher sidd wéi ee Fragment deen Deel vun der Säit beaflosst.

Ech war an esou enger Situatioun, wann ech probéiert eng Ännerung ze maachen, fillt et sech wéi eng schwiereg Aufgab. Dir kënnt net sécher sinn, datt Dir näischt Paus wäert well jQuery selectors hänkt op der HTML Struktur generéiert vum Server.

Um aneren Enn vun der Skala sinn einfach Siten déi nëmmen e bëssen Interaktivitéit oder dynameschen Inhalt erfuerderen. Ech géif och net an dëse Fäll jQuery als Standard ginn, well et gëtt sou vill méi wat Dir mat gebiertege APIen maache kënnt.

Och wann ech eppes méi staark brauch, sichen ech eng spezialiséiert Bibliothéik, z.B. axios fir Ajax bzw Animate.css fir Animatiounen. Dëst wäert méi einfach sinn wéi all jQuery fir eng kleng Funktionalitéit ze lueden.

Ech mengen déi bescht Begrënnung fir jQuery ze benotzen ass datt et ëmfaassend Funktionalitéit fir de Frontend vun enger Websäit gëtt. Amplaz eng Vielfalt vun gebierteg APIen oder spezialiséiert Bibliothéiken ze léieren, kënnt Dir just d'jQuery Dokumentatioun liesen an direkt produktiv ginn.

Déi imperativ Approche skaléiert net gutt, awer et ass méi einfach ze léieren wéi déi deklarativ Approche vun anere Bibliothéiken. Fir e Site mat kloer limitéiert Fäegkeeten ass et besser jQuery ze benotzen a roueg ze schaffen: d'Bibliothéik erfuerdert keng komplex Versammlung oder Kompiléierung.

Zousätzlech ass jQuery gutt wann Dir zouversiichtlech sidd datt Äre Site mat der Zäit net komplizéiert gëtt, a wann Dir Iech net ëm gebierteg Funktionalitéit këmmert, wat sécherlech méi Code erfuerdert wéi jQuery.

Dir kënnt och dës Bibliothéik benotzen wann Dir eeler Versioune vun IE ënnerstëtzen musst. Dann déngt jQuery Iech wéi et an den Deeg gemaach huet wou IE de populärste Browser war.

A kuckt an d'Zukunft

jQuery wäert net geschwënn verschwannen. Si aktiv entwéckelen, a vill Entwéckler léiwer seng API ze benotzen, och wann native Methoden verfügbar sinn. D'Bibliothéik huet eng ganz Generatioun vun Entwéckler gehollef Websäiten ze kreéieren déi op all Browser funktionnéieren. Och wann et op ville Weeër duerch nei Bibliothéiken, Kaderen a Paradigmen ersat gouf, huet jQuery eng enorm positiv Roll bei der Schafung vum modernen Web gespillt.

Ausser d'Funktionalitéit vun jQuery bedeitend ännert, ass et méiglech datt d'Benotzung vun der Bibliothéik lues awer stänneg an den nächste Joren erofgeet. Nei Websäite tendéieren vun Ufank un mat méi modernen Kaderen gebaut ze ginn, a passend Benotzungsfäll fir jQuery ginn ëmmer méi rar.

E puer Leit hunn den Taux net gär mat deem Webentwécklungsinstrumenter verouderd ginn, awer fir mech ass et Beweis vu séiere Fortschrëtter. jQuery huet eis erlaabt vill Saachen besser ze maachen. Dat selwecht gëllt fir hir Nofolger.

Source: will.com

Setzt e Commentaire