jQuery -
Sed en la lastaj jaroj, ĝia statuso kiel la ĉefa ilo por reto-disvolviĝo eroziis. Ni rigardu kial jQuery populariĝis kaj kial ĝi malmodiĝis, kaj ankaŭ en kiuj kazoj estas ankoraŭ rekomendinde uzi ĝin por krei modernajn retejojn.
Mallonga Historio de jQuery
John Resig (
jQuery estas Javascript biblioteko bazita sur la devizo: Javascript devus esti amuza por kodigi. jQuery prenas oftajn, ripetemajn taskojn, forigas ĉiujn nenecesajn markojn kaj faras ilin mallongaj, elegantaj kaj puraj.
jQuery havas du ĉefajn avantaĝojn. La unua estas oportuna API por manipuli retpaĝojn. Aparte, ĝi provizas potencajn metodojn por elekti elementojn. Ne nur vi povas elekti per ID aŭ klaso, jQuery permesas vin skribi kompleksajn esprimojn, ekzemple, elekti elementojn surbaze de iliaj rilatoj kun aliaj elementoj:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Kun la tempo, la selektmekanismo iĝis aparta biblioteko
La dua avantaĝo de la biblioteko estis ke ĝi abstraktis diferencojn inter retumiloj. En tiuj jaroj, estis malfacile skribi kodon kiu povis funkcii fidinde en ĉiuj retumiloj.
La manko de normigado signifis ke programistoj devis respondeci pri multaj diferencoj inter retumiloj kaj randkazoj. Rigardu
// 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);
}
Kaj danke al jQuery, programistoj povus ŝanĝi la zorgojn pri ĉiuj ĉi tiuj faŭltoj sur la ŝultrojn de la teamo disvolvanta la bibliotekon.
Poste, jQuery faciligis efektivigi pli kompleksajn teknologiojn kiel animacioj kaj Ajax. La biblioteko efektive fariĝis norma dependeco por retejoj. Kaj hodiaŭ ĝi funkciigas grandegan parton de la Interreto. W3Techs kredas tion
Kontrolo super jQuery-disvolviĝo ankaŭ fariĝis pli formaligita. En 2011 la teamo
En 2015, la jQuery Foundation kunfalis kun la Doĵo-Fundamento,
Ŝanĝantaj cirkonstancoj
Tamen, en la lastaj jaroj jQuery
Foliumiloj
Pro kelkaj kialoj, retumilo-diferencoj kaj limigoj fariĝis malpli gravaj. Unue, normigado pliboniĝis. Gravaj programistoj de retumilo (Apple, Google, Microsoft kaj Mozilla) kunlaboras por disvolvi
Kvankam retumiloj ankoraŭ diferencas unu de la alia laŭ kelkaj gravaj manieroj, vendistoj almenaŭ havas rimedon por serĉi kaj krei komunan datumbazon anstataŭe de
// 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);
});
Metodoj
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Vi nun povas manipuli elementklasojn uzante
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
En la retejo
Uzado de indiĝenaj funkcioj plibonigas paĝan rendimenton. Multaj
La dua kialo estas, ke retumiloj estas ĝisdatigitaj multe pli rapide ol antaŭe. Plej multaj el ili uzas
Ĉi tio signifas, ke novaj retumiloj kaj korektoj de cimoj estas distribuitaj multe pli rapide, kaj programistoj ne devas atendi ĝis la
La tria kialo estas, ke Interreto Explorer alproksimiĝas al stato de kompleta sensignifeco. IE delonge estas la malbono de TTT-evoluo tra la mondo. Ĝiaj cimoj estis ĝeneraligitaj, kaj ĉar IE dominis la 2000-aj jarojn kaj ne uzis ĉiamverdan ĝisdatigstrategion, pli malnovaj versioj daŭre estas oftaj.
En 2016, Mikrosofto akcelis la malmendigon de IE,
Eĉ jQuery ĉesis subteni IE 8 kaj sube ekde
Novaj kadroj
Ekde la apero de jQuery, multaj kadroj estis kreitaj, inkluzive de modernaj gvidantoj
Unue, ili faciligas apartigi la uzantinterfacon en komponantojn. Kadroj estas dezajnitaj por trakti paĝan bildigon kaj ĝisdatigon. Kaj jQuery estas kutime uzata nur por ĝisdatigo, lasante la taskon provizi la komencan paĝon al la servilo.
Aliflanke, React, Angular kaj Vue-komponentoj permesas vin firme kunligi HTML, kodon kaj eĉ CSS. Same kiel ni dividas la kodan bazon en multajn memstarajn funkciojn kaj klasojn, la kapablo dividi la interfacon en reuzeblajn komponentojn faciligas konstrui kaj konservi kompleksajn retejojn.
La dua avantaĝo estas, ke pli lastatempaj kadroj aliĝas al deklara paradigmo, en kiu la programisto priskribas kiel la interfaco devus aspekti kaj lasas ĝin al la kadro fari ĉiujn necesajn ŝanĝojn por atingi tion, kio estas dezirata. Ĉi tiu aliro estas kontraŭa al la imperativa aliro kiu karakterizas jQuery-kodon.
En jQuery, vi eksplicite skribas la paŝojn por fari ajnajn ŝanĝojn. Kaj en deklara kadro vi diras, "Laŭ ĉi tiuj datumoj, la interfaco devus aspekti tiel." Ĉi tio povas multe pli facile skribi sen cim-kodon.
Programistoj adoptis novajn alirojn al retejo-disvolviĝo, tial la populareco de jQuery malpliiĝis.
Kiam uzi jQuery?
Do kiam devas esti uzi jQuery?
Se la komplekseco de la projekto pliiĝas, tiam estas pli bone komenci per alia biblioteko aŭ kadro, kiu ebligas al vi senchave administri kompleksecon. Ekzemple, dividu la interfacon en komponantojn. Uzado de jQuery en tiaj retejoj eble aspektas bone komence, sed ĝi rapide kondukos al spagetokodo kie vi ne certas, kiu fragmento influas kiun parton de la paĝo.
Mi estis en tia situacio, kiam mi provas fari ajnan ŝanĝon, ĝi sentas kiel malfacila tasko. Vi ne povas esti certa, ke vi ne rompos ion ĉar jQuery-elektiloj dependas de la HTML-strukturo generita de la servilo.
Ĉe la alia fino de la skalo estas simplaj retejoj, kiuj postulas nur iom da interagado aŭ dinamika enhavo. Mi ankaŭ ne defaŭltus jQuery en ĉi tiuj kazoj, ĉar estas multe pli, kion vi povas fari kun denaskaj APIoj.
Eĉ se mi bezonos ion pli potencan, mi serĉos fakan bibliotekon, ekz.
Mi pensas, ke la plej bona kialo por uzi jQuery estas, ke ĝi provizas ampleksan funkciecon por la antaŭa fino de retejo. Anstataŭ lerni diversajn indiĝenajn API-ojn aŭ specialajn bibliotekojn, vi povas legi nur la dokumentaron de jQuery kaj fariĝi tuj produktiva.
La imperativa aliro ne bone skalas, sed ĝi estas pli facile lernebla ol la deklara aliro de aliaj bibliotekoj. Por retejo kun klare limigitaj kapabloj, estas pli bone uzi jQuery kaj labori trankvile: la biblioteko ne postulas kompleksan muntadon aŭ kompilon.
Aldone, jQuery estas bona se vi certas, ke via retejo ne komplikiĝos kun la tempo, kaj se vi ne zorgas pri denaska funkcieco, kio certe postulos skribi pli da kodo ol jQuery.
Vi ankaŭ povas uzi ĉi tiun bibliotekon se vi bezonas subteni pli malnovajn versiojn de IE. Tiam jQuery servos al vi kiel ĝi faris en la tagoj, kiam IE estis la plej populara retumilo.
Rigardu la estontecon
jQuery ne baldaŭ malaperos. Ŝi
Krom se la funkcieco de jQuery signife ŝanĝiĝas, verŝajne la uzado de la biblioteko daŭros malrapide sed konstante malpliiĝos dum la venontaj kelkaj jaroj. Novaj retejoj tendencas esti konstruitaj uzante pli modernajn kadrojn de la komenco, kaj taŭgaj uzkazoj por jQuery fariĝas ĉiam pli maloftaj.
Kelkaj homoj ne ŝatas la rapidecon kun kiu TTT-disvolvaj iloj malnoviĝas, sed al mi ĝi estas pruvo de rapida progreso. jQuery permesis al ni fari multajn aferojn pli bone. La sama estas vera por ŝiaj posteuloj.
fonto: www.habr.com