Storja u Legat jQuery

Storja u Legat jQuery
jQuery - dan huwa l-aktar popolari fid-dinja librerija JavaScript. Il-komunità tal-iżvilupp tal-web ħolquha fl-aħħar tas-snin 2000, u rriżultat f'ekosistema rikka ta 'siti, plugins, u oqfsa bl-użu ta' jQuery taħt il-barnuża.

Iżda f'dawn l-aħħar snin, l-istatus tagħha bħala l-għodda ewlenija għall-iżvilupp tal-web tnaqqar. Ejja nħarsu lejn għaliex jQuery sar popolari u għaliex waqa 'tal-moda, u wkoll f'liema każijiet għadu rakkomandabbli li tużah biex toħloq websajts moderni.

Storja qasira ta 'jQuery

John Resig (John Resig) ħoloq l-ewwel verżjoni tal-librerija fl-2005, u ippubblikata fl-2006-m, f'avveniment imsejjaħ BarCampNYC. Fuq websajt uffiċjali jQuery l-awtur kiteb:

jQuery hija librerija Javascript ibbażata fuq il-motto: Javascript għandu jkun divertenti għall-kodiċi. jQuery jieħu kompiti komuni u ripetittivi, ineħħi l-markup bla bżonn kollu, u jagħmilhom qosra, eleganti u nodfa.

jQuery għandu żewġ vantaġġi ewlenin. L-ewwel hija API konvenjenti għall-manipulazzjoni tal-paġni tal-web. B'mod partikolari, jipprovdi metodi b'saħħithom għall-għażla ta 'elementi. Mhux biss tista' tagħżel b'ID jew klassi, jQuery jippermettilek tikteb espressjonijiet kumplessi, pereżempju, biex tagħżel elementi bbażati fuq ir-relazzjonijiet tagħhom ma' elementi oħra:

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

Maż-żmien, il-mekkaniżmu tal-għażla sar librerija separata Sizzle.

It-tieni vantaġġ tal-librerija kien li estratt id-differenzi bejn il-browsers. F'dawk is-snin, kien diffiċli li tikteb kodiċi li jista 'jaħdem b'mod affidabbli fil-browsers kollha.

In-nuqqas ta 'standardizzazzjoni fisser li l-iżviluppaturi kellhom bżonn jagħtu kont ta' bosta differenzi bejn il-browsers u l-każijiet edge. Agħti ħarsa lejn dan il-kodiċi sors jQuery kmieni u fittex jQuery.browser. Hawn eżempju wieħed:

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

U grazzi għal jQuery, l-iżviluppaturi jistgħu jaqilbu l-inkwiet dwar dawn in-nases kollha fuq l-ispallejn tat-tim li qed jiżviluppa l-librerija.

Aktar tard, jQuery għamilha aktar faċli biex jiġu implimentati teknoloġiji aktar kumplessi bħal animazzjonijiet u Ajax. Il-librerija effettivament saret dipendenza standard għall-websajts. U llum hija s-setgħa ta' sehem kbir mill-Internet. W3Techs jemmen li 74% tas-siti llum jużaw jQuery.

Il-kontroll fuq l-iżvilupp jQuery sar ukoll aktar formalizzat. Fl-2011 it-tim ħoloq Bord jQuery. U fl-2012 jQuery Bord mibdula f'jQuery Foundation.

Fl-2015, il-Fondazzjoni jQuery ingħaqdet mal-Fondazzjoni Dojo, biex tinħoloq Fondazzjoni JS, li mbagħad ingħaqad mal-Fondazzjoni Node.js fi 2019-m biex toħloq Fondazzjoni OpenJS, li fih jQuery kien wieħed mill-"proġetti innovattivi. »

Ċirkostanzi li jinbidlu

Madankollu, fis-snin riċenti jQuery tilef il-popolarità tiegħu. GitHub neħħa l-librerija mill-frontend tas-sit tiegħi. Bootstrap v5 jeħles minn jQuerygħax hu tiegħu"l-akbar dipendenza fuq il-klijent għal JavaScript regolari"(bħalissa 30 KB fid-daqs, minifikat u ppakkjat). Diversi tendenzi fl-iżvilupp tal-web dgħajfu l-pożizzjoni ta’ jQuery bħala għodda essenzjali.

Browsers

Għal numru ta' raġunijiet, id-differenzi u l-limitazzjonijiet fil-browser saru inqas importanti. L-ewwel, l-istandardizzazzjoni tjiebet. Żviluppaturi ewlenin tal-browser (Apple, Google, Microsoft u Mozilla) qed jaħdmu flimkien biex jiżviluppaw standards tal-web fi ħdan Grupp ta' Ħidma tat-Teknoloġija tal-Applikazzjoni tal-Ipertest tal-Web.
Għalkemm il-browsers għadhom differenti minn xulxin f'numru ta' modi importanti, il-bejjiegħa tal-inqas għandhom mezz biex ifittxu u joħolqu database komuni minflok gwerra permanenti flimkien. Għaldaqstant, l-APIs tal-browser kisbu kapaċitajiet ġodda. Eż., Fetch API kapaċi jissostitwixxi l-funzjonijiet Ajax minn 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);
    });

Metodi querySelector и querySelectorAll pickers jQuery duplikati:

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

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

Issa tista 'timmanipula klassijiet ta' elementi bl-użu ClassList:

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

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

Is-sit Jista' Ma jkollokx bżonn jQuery Elenkati hemm bosta sitwazzjonijiet oħra li fihom il-kodiċi jQuery jista 'jiġi sostitwit b'kodiċi nattiv. Xi żviluppaturi dejjem iżommu ma jQuery għax sempliċement ma jafux dwar l-APIs il-ġodda, iżda meta jagħmlu dan, jibdew jużaw il-librerija inqas spiss.

L-użu ta 'karatteristiċi indiġeni jtejjeb il-prestazzjoni tal-paġna. Ħafna effetti ta' animazzjoni minn jQuery issa tista' timplimenta ferm aktar effettivi bl-użu tas-CSS.

It-tieni raġuni hija li l-browsers jiġu aġġornati ħafna aktar malajr minn qabel. Ħafna minnhom jużaw strateġija ta’ tiġdid “evergreen”., bl-eċċezzjoni ta 'Apple Safari. Jistgħu jiġu aġġornati fl-isfond mingħajr l-involviment tal-utent u mhumiex marbuta mal-aġġornamenti tal-OS.

Dan ifisser li l-karatteristiċi ġodda tal-brawżer u l-bug fixes jitqassmu ħafna aktar malajr, u l-iżviluppaturi m'għandhomx għalfejn jistennew sal- Nista 'nuża se jilħaq livell aċċettabbli. Jistgħu jużaw b'fiduċja karatteristiċi u APIs ġodda mingħajr ma jniżżlu jQuery jew polyfills.

It-tielet raġuni hija li l-Internet Explorer qed joqrob lejn stat ta 'irrilevanza sħiħa. IE ilu żmien twil il-bane tal-iżvilupp tal-web madwar id-dinja. Il-bugs tiegħu kienu mifruxa, u minħabba li IE iddominaw is-snin 2000 u ma użax strateġija ta 'aġġornament Evergreen, verżjonijiet anzjani għadhom komuni.

Fl-2016, Microsoft aċċellerat id-dekummissjonar tal-IE, ma jibqax jappoġġja l-għaxar u l-verżjonijiet preċedenti, limitati għall-appoġġ għall-IE 11. U dejjem aktar, l-iżviluppaturi tal-web għandhom il-lussu li jinjoraw il-kompatibilità tal-IE.

Anke jQuery waqaf jappoġġja IE 8 u taħt li jibda minn verżjoni 2.0, ippubblikat fl-2013. U għalkemm f'xi każijiet l-appoġġ tal-IE għadu meħtieġ, pereżempju, fuq siti anzjani, dawn is-sitwazzjonijiet jinqalgħu dejjem inqas ta 'spiss.

Oqfsa ġodda

Mill-miġja ta 'jQuery, inħolqu ħafna oqfsa, inklużi mexxejja moderni Irreaġixxi, Angulari и Vue. Huma għandhom żewġ vantaġġi importanti fuq jQuery.

L-ewwel, jagħmluha faċli biex tissepara l-interface tal-utent f'komponenti. L-oqfsa huma ddisinjati biex jimmaniġġjaw l-għoti u l-aġġornament tal-paġna. U jQuery normalment jintuża biss għall-aġġornament, u jħalli l-kompitu li jipprovdi l-paġna inizjali lis-server.

Min-naħa l-oħra, il-komponenti React, Angular u Vue jippermettulek tgħaqqad sewwa HTML, kodiċi u anke CSS. Hekk kif naqsmu l-bażi tal-kodiċi f'ħafna funzjonijiet u klassijiet awtonomi, l-abbiltà li taqsam l-interface f'komponenti li jistgħu jerġgħu jintużaw tagħmilha aktar faċli biex jinbnew u jinżammu siti kumplessi.

It-tieni vantaġġ huwa li l-oqfsa aktar reċenti jaderixxu ma 'paradigma dikjarattiva, li fiha l-iżviluppatur jiddeskrivi kif għandha tidher l-interface u tħalli f'idejn il-qafas biex jagħmel il-bidliet kollha meħtieġa biex jinkiseb dak li hu mixtieq. Dan l-approċċ huwa kuntrarju għall-approċċ imperattiv li jikkaratterizza l-kodiċi jQuery.

F'jQuery, tikteb b'mod espliċitu l-passi biex tagħmel xi bidliet. U f'qafas dikjarattiv tgħid, "Skond din id-dejta, l-interface għandha tidher bħal din." Dan jista 'jagħmel il-kitba ta' kodiċi mingħajr bug ħafna aktar faċli.

L-iżviluppaturi adottaw approċċi ġodda għall-iżvilupp tal-websajt, u huwa għalhekk li l-popolarità ta 'jQuery naqset.

Meta tuża jQuery?

Allura meta għandu jkun tuża jQuery?

Jekk il-kumplessità tal-proġett tiżdied, allura huwa aħjar li tibda b'librerija jew qafas ieħor li jippermettilek timmaniġġja l-kumplessità b'mod sinifikanti. Per eżempju, jaqsam l-interface f'komponenti. L-użu ta' jQuery fuq siti bħal dawn jista' jidher tajjeb għall-ewwel, iżda malajr iwassal għal kodiċi tal-ispagetti fejn m'intix ċert liema framment jaffettwa liema parti tal-paġna.

Jien kont f'sitwazzjoni bħal din, meta nipprova nagħmel xi bidla, inħoss biċċa xogħol diffiċli. Ma tistax tkun ċert li mhux se tkisser xejn minħabba li s-seletturi jQuery jiddependu fuq l-istruttura HTML ġġenerata mis-server.

Fit-tarf l-ieħor tal-iskala hemm siti sempliċi li jeħtieġu biss ftit interattività jew kontenut dinamiku. F'dawn il-każijiet lanqas nixtieq nagħmel jQuery, għax hemm ħafna aktar li tista 'tagħmel b'APIs indiġeni.

Anke jekk għandi bżonn xi ħaġa aktar qawwija, infittex librerija speċjalizzata, eż. Axios għal Ajax jew Animate.css għal animazzjonijiet. Dan se jkun aktar faċli milli tagħbija jQuery kollu għal funzjonalità żgħira.

Naħseb li l-aħjar raġuni għall-użu ta 'jQuery hija li tipprovdi funzjonalità komprensiva għall-parti ta' quddiem ta 'websajt. Minflok titgħallem varjetà ta 'APIs indiġeni jew libreriji speċjalizzati, tista' taqra biss id-dokumentazzjoni jQuery u ssir produttiv istantanjament.

L-approċċ imperattiv ma jiskalax tajjeb, iżda huwa aktar faċli li titgħallem mill-approċċ dikjarattiv ta 'libreriji oħra. Għal sit b'kapaċitajiet limitati b'mod ċar, huwa aħjar li tuża jQuery u taħdem bil-kalma: il-librerija ma teħtieġx assemblaġġ kumpless jew kumpilazzjoni.

Barra minn hekk, jQuery huwa tajjeb jekk inti kunfidenti li s-sit tiegħek mhux se jikkumplika ruħek maż-żmien, u jekk ma jimpurtakx mill-funzjonalità nattiva, li ċertament teħtieġ li tikteb aktar kodiċi minn jQuery.

Tista 'wkoll tuża din il-librerija jekk għandek bżonn tappoġġja verżjonijiet eqdem ta' IE. Imbagħad jQuery se jservik bħalma għamel lura fil-jiem meta IE kien l-aktar browser popolari.

prospettar

jQuery mhux sejjer dalwaqt. Hi jiżviluppaw b'mod attiv, u ħafna żviluppaturi jippreferu jużaw l-API tagħha, anke jekk metodi indiġeni huma disponibbli. Il-librerija għenet ġenerazzjoni sħiħa ta 'żviluppaturi joħolqu websajts li jaħdmu fuq kwalunkwe browser. Għalkemm ġie sostitwit f'ħafna modi minn libreriji, oqfsa u paradigmi ġodda, jQuery kellu rwol pożittiv ħafna fil-ħolqien tal-web moderna.

Sakemm il-funzjonalità ta' jQuery ma tinbidelx b'mod sinifikanti, huwa probabbli li l-użu tal-librerija se jkompli jonqos bil-mod iżda b'mod kostanti matul il-ftit snin li ġejjin. Websajts ġodda għandhom it-tendenza li jinbnew bl-użu ta 'oqfsa aktar moderni mill-bidu, u każijiet ta' użu adattati għal jQuery qed isiru dejjem aktar rari.

Xi nies ma jħobbux ir-rata li biha l-għodod tal-iżvilupp tal-web isiru obsoleti, iżda għalija hija evidenza ta 'progress mgħaġġel. jQuery ippermettilna nagħmlu ħafna affarijiet aħjar. L-istess jgħodd għas-suċċessuri tagħha.

Sors: www.habr.com

Żid kumment