jQuery ā
TaÄu pÄdÄjos gados tÄ kÄ galvenÄ tÄ«mekļa izstrÄdes rÄ«ka statuss ir samazinÄjies. ApskatÄ«sim, kÄpÄc jQuery kļuva populÄrs un kÄpÄc tas izkrita no modes, un arÄ« kÄdos gadÄ«jumos to joprojÄm ir ieteicams izmantot modernu vietÅu veidoÅ”anai.
ÄŖsa jQuery vÄsture
Džons Resigs (
jQuery ir Javascript bibliotÄka, kuras pamatÄ ir devÄ«ze: Javascript kodÄÅ”anai jÄbÅ«t jautrai. jQuery veic bieži sastopamus, atkÄrtotus uzdevumus, noÅem visus nevajadzÄ«gos marÄ·Äjumus un padara tos Ä«sus, elegantus un tÄ«rus.
jQuery ir divas galvenÄs priekÅ”rocÄ«bas. Pirmais ir Ärts API manipulÄÅ”anai ar tÄ«mekļa lapÄm. Jo Ä«paÅ”i tas nodroÅ”ina jaudÄ«gas metodes elementu atlasei. Varat ne tikai atlasÄ«t pÄc ID vai klases, bet arÄ« jQuery ļauj rakstÄ«t sarežģītas izteiksmes, piemÄram, lai atlasÄ«tu elementus, pamatojoties uz to attiecÄ«bÄm ar citiem elementiem:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Laika gaitÄ atlases mehÄnisms kļuva par atseviŔķu bibliotÄku
Otra bibliotÄkas priekÅ”rocÄ«ba bija tÄ, ka tÄ abstrahÄja atŔķirÄ«bas starp pÄrlÅ«kprogrammÄm. Tajos gados bija grÅ«ti uzrakstÄ«t kodu, kas varÄtu droÅ”i darboties visÄs pÄrlÅ«kprogrammÄs.
StandartizÄcijas trÅ«kums nozÄ«mÄja, ka izstrÄdÄtÄjiem bija jÄÅem vÄrÄ daudzas atŔķirÄ«bas starp pÄrlÅ«kprogrammÄm un malÄm. Paskaties uz
// 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);
}
Pateicoties jQuery, izstrÄdÄtÄji varÄtu pÄrcelt bažas par visÄm Ŕīm nepilnÄ«bÄm uz bibliotÄkas izstrÄdes komandas pleciem.
VÄlÄk jQuery atviegloja sarežģītÄku tehnoloÄ£iju, piemÄram, animÄciju un Ajax, ievieÅ”anu. BibliotÄka faktiski ir kļuvusi par vietÅu standarta atkarÄ«bu. Un Å”odien tas nodroÅ”ina milzÄ«gu interneta daļu. UzÅÄmums W3Techs tam uzskata
ArÄ« jQuery izstrÄdes kontrole ir kļuvusi formalizÄtÄka. 2011. gadÄ komanda
2015. gadÄ jQuery fonds apvienojÄs ar Dojo fondu,
MainÄ«gi apstÄkļi
TomÄr pÄdÄjos gados jQuery
PÄrlÅ«kprogrammas
VairÄku iemeslu dÄļ pÄrlÅ«kprogrammu atŔķirÄ«bas un ierobežojumi ir kļuvuÅ”i mazÄk svarÄ«gi. PirmkÄrt, standartizÄcija ir uzlabojusies. LielÄkie pÄrlÅ«kprogrammu izstrÄdÄtÄji (Apple, Google, Microsoft un Mozilla) strÄdÄ kopÄ, lai izstrÄdÄtu
Lai gan pÄrlÅ«kprogrammas joprojÄm atŔķiras viena no otras vairÄkos svarÄ«gos veidos, pÄrdevÄjiem vismaz ir iespÄjas meklÄt un izveidot kopÄju datu bÄzi, nevis
// 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);
});
Metodes
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Tagad varat manipulÄt ar elementu klasÄm, izmantojot
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
VietÄ
VietÄjo funkciju izmantoÅ”ana uzlabo lapas veiktspÄju. Daudzi
Otrs iemesls ir tas, ka pÄrlÅ«kprogrammas tiek atjauninÄtas daudz ÄtrÄk nekÄ iepriekÅ”. LielÄkÄ daļa no tiem izmanto
Tas nozÄ«mÄ, ka jaunÄs pÄrlÅ«kprogrammas funkcijas un kļūdu labojumi tiek izplatÄ«ti daudz ÄtrÄk, un izstrÄdÄtÄjiem nav jÄgaida, lÄ«dz
TreÅ”ais iemesls ir tas, ka Internet Explorer tuvojas pilnÄ«gas neatbilstÄ«bas stÄvoklim. IE jau sen ir bijis tÄ«mekļa izstrÄdes posts visÄ pasaulÄ. TÄs kļūdas bija plaÅ”i izplatÄ«tas, un, tÄ kÄ IE dominÄja 2000. gados un neizmantoja mūžzaļo atjauninÄÅ”anas stratÄÄ£iju, vecÄkas versijas joprojÄm ir izplatÄ«tas.
2016. gadÄ Microsoft paÄtrinÄja IE ekspluatÄcijas pÄrtraukÅ”anu,
Pat jQuery pÄrtrauca atbalstÄ«t IE 8 un jaunÄkas versijas, sÄkot no
Jauni ietvari
KopÅ” jQuery parÄdÄ«Å”anÄs ir izveidoti daudzi ietvari, tostarp mÅ«sdienu lÄ«deri
PirmkÄrt, tie atvieglo lietotÄja interfeisa sadalÄ«Å”anu komponentos. Ietvari ir paredzÄti, lai apstrÄdÄtu lapu renderÄÅ”anu un atjauninÄÅ”anu. Un jQuery parasti tiek izmantots tikai atjauninÄÅ”anai, atstÄjot uzdevumu nodroÅ”inÄt sÄkotnÄjo lapu serverim.
No otras puses, React, Angular un Vue komponenti ļauj cieÅ”i savienot HTML, kodu un pat CSS. TÄpat kÄ mÄs sadalÄm koda bÄzi daudzÄs autonomÄs funkcijÄs un klasÄs, iespÄja sadalÄ«t saskarni atkÄrtoti lietojamos komponentos atvieglo sarežģītu vietÅu izveidi un uzturÄÅ”anu.
Otra priekÅ”rocÄ«ba ir tÄ, ka jaunÄkie ietvari ievÄro deklaratÄ«vu paradigmu, kurÄ izstrÄdÄtÄjs apraksta, kÄ saskarnei vajadzÄtu izskatÄ«ties, un atstÄj ietvara ziÅÄ veikt visas nepiecieÅ”amÄs izmaiÅas, lai sasniegtu vÄlamo. Å Ä« pieeja ir pretrunÄ obligÄtajai pieejai, kas raksturo jQuery kodu.
ProgrammÄ jQuery jÅ«s skaidri pierakstiet darbÄ«bas, lai veiktu izmaiÅas. Un deklaratÄ«vÄ sistÄmÄ jÅ«s sakÄt: "SaskaÅÄ ar Å”iem datiem saskarnei vajadzÄtu izskatÄ«ties Å”Ädi." Tas var ievÄrojami atvieglot koda rakstÄ«Å”anu bez kļūdÄm.
IzstrÄdÄtÄji ir pieÅÄmuÅ”i jaunas pieejas vietÅu izstrÄdei, tÄpÄc jQuery popularitÄte ir samazinÄjusies.
Kad lietot jQuery?
Tad, kad vajadzÄtu izmantot jQuery?
Ja projekta sarežģītÄ«ba palielinÄs, tad labÄk sÄkt ar citu bibliotÄku vai ietvaru, kas ļauj jÄgpilni pÄrvaldÄ«t sarežģītÄ«bu. PiemÄram, sadaliet saskarni komponentos. Izmantojot jQuery Å”ÄdÄs vietnÄs, sÄkumÄ var izskatÄ«ties labi, taÄu tas Ätri novedÄ«s pie spageti koda, kurÄ nezinÄt, kurÅ” fragments ietekmÄ kÄdu lapas daļu.
Esmu bijis Å”ÄdÄ situÄcijÄ, kad mÄÄ£inot veikt kÄdas izmaiÅas, tas Ŕķiet grÅ«ts uzdevums. JÅ«s nevarat bÅ«t pÄrliecinÄts, ka neko nesalauzÄ«sit, jo jQuery atlasÄ«tÄji ir atkarÄ«gi no servera Ä£enerÄtÄs HTML struktÅ«ras.
Skalas otrÄ galÄ ir vienkÄrÅ”as vietnes, kurÄm nepiecieÅ”ama tikai neliela interaktivitÄte vai dinamisks saturs. ArÄ« Å”Ädos gadÄ«jumos es nevÄlÄtos izmantot jQuery, jo ar vietÄjÄm API varat paveikt daudz vairÄk.
Pat ja vajadzÄs ko jaudÄ«gÄku, meklÄÅ”u specializÄtu bibliotÄku, piem.
Es domÄju, ka labÄkais jQuery izmantoÅ”anas pamatojums ir tas, ka tas nodroÅ”ina visaptveroÅ”u funkcionalitÄti vietnes priekÅ”pusÄ. TÄ vietÄ, lai apgÅ«tu dažÄdas vietÄjÄs API vai specializÄtÄs bibliotÄkas, varat lasÄ«t tikai jQuery dokumentÄciju un nekavÄjoties kļūt produktÄ«vam.
ImperatÄ«vÄ pieeja nav labi mÄrogojama, taÄu to ir vieglÄk apgÅ«t nekÄ citu bibliotÄku deklaratÄ«vo pieeju. Vietnei ar skaidri ierobežotÄm iespÄjÄm labÄk izmantot jQuery un strÄdÄt mierÄ«gi: bibliotÄkai nav nepiecieÅ”ama sarežģīta montÄža vai apkopoÅ”ana.
TurklÄt jQuery ir labs, ja esat pÄrliecinÄts, ka jÅ«su vietne laika gaitÄ nekļūs sarežģīta, un ja jums nerÅ«p vietÄjÄ funkcionalitÄte, kas noteikti prasÄ«s rakstÄ«t vairÄk koda nekÄ jQuery.
Varat arÄ« izmantot Å”o bibliotÄku, ja nepiecieÅ”ams atbalstÄ«t vecÄkas IE versijas. Tad jQuery kalpos jums tÄpat kÄ tajos laikos, kad IE bija vispopulÄrÄkÄ pÄrlÅ«kprogramma.
ApzinÄÅ”anu
jQuery tuvÄkajÄ laikÄ nepazudÄ«s. ViÅa
Ja vien jQuery funkcionalitÄte bÅ«tiski nemainÄ«sies, iespÄjams, ka dažu nÄkamo gadu laikÄ bibliotÄkas izmantoÅ”ana turpinÄs lÄnÄm, bet nepÄrtraukti samazinÄties. Jaunas vietnes jau no paÅ”a sÄkuma parasti tiek veidotas, izmantojot modernÄkus ietvarus, un piemÄroti jQuery lietoÅ”anas gadÄ«jumi kļūst arvien retÄk.
Dažiem cilvÄkiem nepatÄ«k tÄ«mekļa izstrÄdes rÄ«ku novecoÅ”anÄs Ätrums, bet man tas liecina par strauju progresu. jQuery ir ļÄvusi mums daudzas lietas paveikt labÄk. Tas pats attiecas uz viÅas pÄcteÄiem.
Avots: www.habr.com