jQuery Skiednis en Legacy

jQuery Skiednis en Legacy
jQuery - dit is de meast populêre yn 'e wrâld in JavaSkript bibleteek. De webûntwikkelingsmienskip makke it yn 'e lette 2000's, wat resultearre yn in ryk ekosysteem fan siden, plugins en kaders mei jQuery ûnder de kap.

Mar yn 'e ôfrûne jierren is har status as it haadynstrumint foar webûntwikkeling erodearre. Litte wy sjen wêrom't jQuery populêr waard en wêrom't it út 'e moade rekke, en ek yn hokker gefallen is it noch altyd oan te rieden om it te brûken om moderne websiden te meitsjen.

In koarte skiednis fan jQuery

John Resig (John Reis) makke de earste ferzje fan de bibleteek yn 2005, en publisearre yn 2006-m, op in evenemint neamd BarCampNYC. Op jQuery offisjele webside de skriuwer skreau:

jQuery is in Javascript-bibleteek basearre op it motto: Javascript moat leuk wêze om te koade. jQuery nimt mienskiplike, repetitive taken, stript alle ûnnedige markearring út en makket se koart, elegant en skjin.

jQuery hat twa wichtichste foardielen. De earste is in handige API foar it manipulearjen fan websiden. Benammen jout it krêftige metoaden foar it selektearjen fan eleminten. Net allinich kinne jo selektearje troch ID of klasse, jQuery kinne jo komplekse útdrukkingen skriuwe, bygelyks om eleminten te selektearjen basearre op har relaasjes mei oare eleminten:

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

Yn 'e rin fan' e tiid waard it seleksjemeganisme in aparte biblioteek Sizzle.

It twadde foardiel fan 'e bibleteek wie dat it ferskillen tusken browsers abstrahearre. Yn dy jierren wie it dreech om koade te skriuwen dy't yn alle browsers betrouber wurkje koe.

It gebrek oan standerdisearring betsjutte dat ûntwikkelders rekken moasten mei tal fan ferskillen tusken browsers en rânegefallen. Sjoch ris nei dizze iere jQuery boarne koade en sykje jQuery.browser. Hjir is ien foarbyld:

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

En tank oan jQuery, ûntwikkelders koenen ferpleatse de soargen oer al dizze pitfalls op 'e skouders fan it team ûntwikkeljen fan de bibleteek.

Letter makke jQuery it makliker om kompleksere technologyen lykas animaasjes en Ajax út te fieren. De bibleteek is effektyf in standert ôfhinklikens wurden foar websiden. En hjoed is it machtich in grut diel fan it ynternet. W3Techs leaut dat 74% fan 'e siden brûke hjoed jQuery.

Kontrôle oer jQuery-ûntwikkeling is ek mear formalisearre wurden. Yn 2011 it team makke jQuery Board. En yn 2012 jQuery Board omfoarme ta jQuery Foundation.

Yn 2015 fusearre de jQuery Foundation mei de Dojo Foundation, om JS Foundation te meitsjen, dy't doe gearfoege mei de Node.js Foundation yn 2019-m te meitsjen OpenJS Stichting, wêryn jQuery ien fan 'e "trochbraak projekten. "

Feroarjende omstannichheden

Lykwols, yn de ôfrûne jierren jQuery ferlear syn populariteit. GitHub fuorthelle de bibleteek fan it frontend fan myn side. Bootstrap v5 kwytreitsje jQuerywant it is syn"grutste klantôfhinklikens foar reguliere JavaScript"(op it stuit 30 KB yn grutte, minifisearre en ynpakt). Ferskate trends yn webûntwikkeling hawwe de posysje fan jQuery as in essinsjeel ark ferswakke.

Браузеры

Om in oantal redenen binne browserferskillen en beheiningen minder wichtich wurden. Earst is standerdisearring ferbettere. Grutte browserûntwikkelders (Apple, Google, Microsoft en Mozilla) wurkje gear om te ûntwikkeljen web noarmen binnen it ramt Web Hypertext Application Technology Working Group.
Hoewol browsers noch op in oantal wichtige manieren fan elkoar ferskille, hawwe leveransiers op syn minst in middel om te sykjen en in mienskiplike database te meitsjen ynstee fan permaninte oarloch mei-inoar. Dêrtroch hawwe browser-API's nije mooglikheden krigen. Bygelyks, API ophelje yn steat om Ajax-funksjes te ferfangen fan 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);
    });

Metoaden querySelector и querySelectorAll dûbele jQuery pickers:

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

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

Jo kinne no elemintklassen manipulearje mei klasseList:

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

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

Op it webstee Jo meie net nedich jQuery Hjir binne in pear mear situaasjes wêryn jQuery koade kin wurde ferfongen troch native koade. Guon ûntwikkelders bliuwe altyd by jQuery om't se gewoan net witte oer de nije API's, mar as se dat dogge, begjinne se minder faak de bibleteek te brûken.

It brûken fan native funksjes ferbettert sideprestaasjes. Folle animaasje effekten út jQuery no kinne jo útfiere folle effektiver mei help fan CSS.

De twadde reden is dat browsers folle rapper bywurke wurde as earder. De measte fan harren brûke "evergreen" fernijingsstrategy, mei útsûndering fan Apple Safari. Se kinne op 'e eftergrûn bywurke wurde sûnder belutsenens fan brûkers en binne net bûn oan OS-updates.

Dit betsjut dat nije browser funksjes en bug fixes wurde ferspraat folle flugger, en ûntwikkelers hoege net te wachtsjen oant de Kin ik brûke sil berikke in akseptabel nivo. Se kinne mei fertrouwen nije funksjes en API's brûke sûnder jQuery of polyfills te downloaden.

De tredde reden is dat Internet Explorer in steat fan folsleine irrelevânsje benaderet. IE is al lang de ban fan webûntwikkeling om 'e wrâld. De bugs wiene wiidferspraat, en om't IE de 2000's dominearre en gjin evergreen updatestrategy brûkte, binne âldere ferzjes noch altyd gewoan.

Yn 2016 fersnelde Microsoft de ûntmanteling fan IE, ophâlde te stypjen tsiende en eardere ferzjes, beheine stipe oan IE 11. En hieltyd mear, webûntwikkelders hawwe de lúkse fan negearje IE komptabiliteit.

Sels jQuery stoppe it stypjen fan IE 8 en ûnder begjinnend fan ferzje 2.0, publisearre yn 2013. En hoewol yn guon gefallen IE-stipe noch fereaske is, bygelyks op âldere siden, komme dizze situaasjes hieltyd minder foar.

Nije kaders

Sûnt de komst fan jQuery binne in protte kaders makke, ynklusyf moderne lieders Reagearje, Winkelje и vue. Se hawwe twa wichtige foardielen boppe jQuery.

Earst meitsje se it maklik om de brûkersynterface yn komponinten te skieden. Frameworks binne ûntworpen om side-rendering en bywurking te behanneljen. En jQuery wurdt meastal brûkt allinnich foar aktualisearjen, wêrtroch de taak fan it jaan fan de earste side oan de tsjinner.

Oan 'e oare kant kinne komponinten React, Angular en Vue jo HTML, koade en sels CSS strak koppele. Krekt sa't wy ferdiele de koade basis yn in protte selsstannige funksjes en klassen, de mooglikheid om te dielen de ynterface yn werbrûkbere komponinten makket it makliker te bouwen en ûnderhâlden komplekse siden.

It twadde foardiel is dat mear resinte kaders har oan in deklaratyf paradigma hâlde, wêryn't de ûntwikkelder beskriuwt hoe't de ynterface der útsjen moat en it oan it ramt oerlitte om alle nedige wizigingen te meitsjen om te berikken wat winske is. Dizze oanpak is yn striid mei de ymperatyf oanpak dy't karakterisearret jQuery koade.

Yn jQuery skriuwe jo de stappen eksplisyt op om feroaringen te meitsjen. En yn in deklaratyf ramt sizze jo: "Neffens dizze gegevens moat de ynterface der sa útsjen." Dit kin it skriuwen fan bugfrije koade in stik makliker meitsje.

Untwikkelders hawwe nije oanpakken oannommen foar websideûntwikkeling, en dêrom is de populariteit fan jQuery ôfnommen.

Wannear moatte jo jQuery brûke?

Dus wannear moat wêze brûke jQuery?

As de kompleksiteit fan it projekt tanimt, dan is it better om te begjinnen mei in oare bibleteek of ramt wêrmei jo sinfol beheare kompleksiteit. Bygelyks, ferdiele de ynterface yn komponinten. It brûken fan jQuery op sokke siden kin earst goed útsjen, mar it sil gau liede ta spaghettikoade wêr't jo net wis binne op hokker fragmint fan ynfloed is op hokker diel fan 'e side.

Ik haw yn sa'n situaasje west, as ik besykje te feroarjen, fielt it as in drege taak. Jo kinne net v're wis op dat jo sille net brekke neat omdat jQuery selectors binne ôfhinklik fan de HTML struktuer oanmakke troch de tsjinner.

Oan 'e oare ein fan' e skaal binne ienfâldige siden dy't mar in bytsje ynteraktiviteit as dynamyske ynhâld fereaskje. Ik soe yn dizze gefallen ek net standert ta jQuery, om't d'r safolle mear is dat jo kinne dwaan mei native API's.

Ek as ik nedich wat machtiger, Ik sil sykje in spesjalisearre bibleteek, bgl. axios foar Ajax of Animate.css foar animaasjes. Dit sil wêze makliker as it laden fan alle jQuery foar in lytse funksjonaliteit.

Ik tink dat de bêste reden foar it brûken fan jQuery is dat it in wiidweidige funksjonaliteit leveret foar de foarkant fan in webside. Yn stee fan in ferskaat oan lânseigen APIs of spesjalisearre bibleteken te learen, kinne jo gewoan de jQuery-dokumintaasje lêze en daliks produktyf wurde.

De ymperatyf oanpak skaalet net goed, mar it is makliker te learen as de deklarative oanpak fan oare bibleteken. Foar in side mei dúdlik beheinde mooglikheden is it better om jQuery te brûken en rêstich te wurkjen: de bibleteek hat gjin komplekse gearkomste of kompilaasje nedich.

Dêrnjonken is jQuery goed as jo der wis fan binne dat jo side net yngewikkeld wurdt yn 'e rin fan' e tiid, en as jo net skele oer native funksjonaliteit, dat sil grif fereaskje in skriuwen mear koade as jQuery.

Jo kinne dizze bibleteek ek brûke as jo âldere ferzjes fan IE moatte stypje. Dan sil jQuery jo tsjinje lykas it die yn 'e dagen doe't IE de populêrste browser wie.

Besjoch de takomst

jQuery sil net gau ferdwine. Sy aktyf ûntwikkeljen, en in protte ûntwikkelders leaver har API te brûken, sels as native metoaden beskikber binne. De bibleteek hat in hiele generaasje ûntwikkelders holpen om websiden te meitsjen dy't wurkje op elke browser. Hoewol it op in protte manieren ferfongen is troch nije biblioteken, kaders en paradigma's, hat jQuery in heul positive rol spile yn 'e skepping fan it moderne web.

Behalven as de funksjonaliteit fan jQuery signifikant feroaret, is it wierskynlik dat it gebrûk fan 'e bibleteek de kommende jierren stadichoan mar stadichoan sil ôfnimme. Nije websiden tend to wurde boud mei help fan mear moderne kaders fan it begjin ôf, en geskikte gebrûk gefallen foar jQuery wurde hieltyd seldsumer.

Guon minsken hâlde net fan it taryf wêrmei ark foar webûntwikkeling ferâldere wurde, mar foar my is it bewiis fan rappe foarútgong. jQuery hat ús tastien om in protte dingen better te dwaan. Itselde jildt foar har opfolgers.

Boarne: www.habr.com

Add a comment