jQuery -
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 (
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
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
// 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
Kontrôle oer jQuery-ûntwikkeling is ek mear formalisearre wurden. Yn 2011 it team
Yn 2015 fusearre de jQuery Foundation mei de Dojo Foundation,
Feroarjende omstannichheden
Lykwols, yn de ôfrûne jierren jQuery
Браузеры
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
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
// 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
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Jo kinne no elemintklassen manipulearje mei
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Op it webstee
It brûken fan native funksjes ferbettert sideprestaasjes. Folle
De twadde reden is dat browsers folle rapper bywurke wurde as earder. De measte fan harren brûke
Dit betsjut dat nije browser funksjes en bug fixes wurde ferspraat folle flugger, en ûntwikkelers hoege net te wachtsjen oant de
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,
Sels jQuery stoppe it stypjen fan IE 8 en ûnder begjinnend fan
Nije kaders
Sûnt de komst fan jQuery binne in protte kaders makke, ynklusyf moderne lieders
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.
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
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