jQuery -
Սակայն վերջին տարիներին նրա կարգավիճակը՝ որպես վեբ մշակման առաջնակարգ գործիք, քայքայվել է: Եկեք նայենք, թե ինչու է jQuery-ն դարձել հայտնի և ինչու է այն դուրս եկել նորաձևությունից, ինչպես նաև ինչ դեպքերում է դեռ նպատակահարմար օգտագործել այն ժամանակակից կայքեր ստեղծելու համար։
jQuery-ի համառոտ պատմություն
Ջոն Ռեսիգ (
jQuery-ն Javascript գրադարան է, որը հիմնված է նշանաբանի վրա. Javascript-ը պետք է զվարճալի լինի կոդավորելու համար: jQuery-ն վերցնում է սովորական, կրկնվող առաջադրանքները, հանում է բոլոր ավելորդ նշումները և դարձնում դրանք կարճ, էլեգանտ և մաքուր:
jQuery-ն ունի երկու հիմնական առավելություն. Առաջինը հարմար API է վեբ էջերը շահարկելու համար: Մասնավորապես, այն ապահովում է տարրերի ընտրության հզոր մեթոդներ։ Ոչ միայն կարող եք ընտրել ըստ ID-ի կամ դասի, jQuery-ն թույլ է տալիս գրել բարդ արտահայտություններ, օրինակ՝ ընտրել տարրեր՝ հիմնվելով այլ տարրերի հետ նրանց փոխհարաբերությունների վրա.
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Ժամանակի ընթացքում ընտրության մեխանիզմը դարձավ առանձին գրադարան
Գրադարանի երկրորդ առավելությունն այն էր, որ այն վերացարկեց բրաուզերների միջև եղած տարբերությունները: Այդ տարիներին դժվար էր գրել կոդ, որը կարող էր հուսալիորեն աշխատել բոլոր բրաուզերներում։
Ստանդարտացման բացակայությունը նշանակում էր, որ մշակողները պետք է հաշվի առնեին բրաուզերների և եզրային դեպքերի միջև եղած բազմաթիվ տարբերությունները: Նայեք
// 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);
}
Եվ շնորհիվ jQuery-ի, մշակողները կարող էին այս բոլոր որոգայթների մասին մտահոգությունները տեղափոխել գրադարանը մշակող թիմի ուսերին:
Հետագայում jQuery-ն հեշտացրեց ավելի բարդ տեխնոլոգիաների ներդրումը, ինչպիսիք են անիմացիաները և Ajax-ը: Գրադարանը գործնականում դարձել է ստանդարտ կախվածություն կայքերի համար: Եվ այսօր այն ապահովում է ինտերնետի հսկայական մասը: W3Techs-ը կարծում է, որ
jQuery-ի մշակման վերահսկողությունը նույնպես դարձել է ավելի պաշտոնական: Թիմը 2011թ
2015 թվականին jQuery հիմնադրամը միավորվեց Dojo Foundation-ի հետ,
Փոփոխվող հանգամանքներ
Այնուամենայնիվ, վերջին տարիներին jQuery
Браузеры
Մի շարք պատճառներով բրաուզերի տարբերություններն ու սահմանափակումները պակաս կարևոր են դարձել: Նախ, ստանդարտացումը բարելավվել է: Բրաուզերի խոշոր մշակողները (Apple, Google, Microsoft և Mozilla) աշխատում են միասին զարգացնելու համար
Թեև բրաուզերները դեռևս տարբերվում են միմյանցից մի շարք կարևոր առումներով, վաճառողները առնվազն հնարավորություն ունեն որոնելու և ընդհանուր տվյալների բազա ստեղծելու փոխարեն:
// 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);
});
Մեթոդներ
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Այժմ կարող եք շահարկել տարրերի դասերը՝ օգտագործելով
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Կայքը
Ներքին գործառույթների օգտագործումը բարելավում է էջի աշխատանքը: Շատերը
Երկրորդ պատճառն այն է, որ բրաուզերները շատ ավելի արագ են թարմացվում, քան նախկինում։ Նրանցից շատերը օգտագործում են
Սա նշանակում է, որ բրաուզերի նոր հնարավորությունները և սխալների շտկումը շատ ավելի արագ են բաշխվում, և մշակողները ստիպված չեն լինի սպասել մինչև
Երրորդ պատճառն այն է, որ Internet Explorer-ը մոտենում է բացարձակ անտեղի վիճակին: IE-ն վաղուց արդեն եղել է վեբ մշակման աղետը ողջ աշխարհում: Դրա սխալները լայնորեն տարածված էին, և քանի որ IE-ն գերակշռում էր 2000-ականներին և չէր օգտագործում մշտադալար թարմացման ռազմավարություն, հին տարբերակները դեռևս տարածված են:
2016 թվականին Microsoft-ը արագացրել է IE-ի ապամոնտաժումը,
Դրանից հետո նույնիսկ jQuery-ն դադարել է աջակցել IE 8 և ավելի ցածր
Նոր շրջանակներ
jQuery-ի հայտնվելուց ի վեր ստեղծվել են բազմաթիվ շրջանակներ, այդ թվում՝ ժամանակակից առաջատարներ
Նախ, դրանք հեշտացնում են օգտագործողի միջերեսը բաղադրիչների բաժանելը: Շրջանակները նախատեսված են էջի վերարտադրման և թարմացման համար: Իսկ jQuery-ն սովորաբար օգտագործվում է միայն թարմացման համար՝ թողնելով սկզբնական էջը սերվերին տրամադրելու խնդիրը։
Մյուս կողմից, React, Angular և Vue բաղադրիչները թույլ են տալիս սերտորեն զուգակցել HTML-ը, կոդը և նույնիսկ CSS-ը: Ինչպես մենք բաժանում ենք կոդերի բազան բազմաթիվ ինքնուրույն գործառույթների և դասերի, այնպես էլ միջերեսը բազմակի օգտագործման բաղադրիչների բաժանելու հնարավորությունը հեշտացնում է բարդ կայքերի կառուցումն ու պահպանումը:
Երկրորդ առավելությունն այն է, որ ավելի նոր շրջանակները պահպանում են դեկլարատիվ պարադիգմը, որտեղ ծրագրավորողը նկարագրում է, թե ինչպիսին պետք է լինի ինտերֆեյսը և թողնում է շրջանակին՝ կատարել բոլոր անհրաժեշտ փոփոխությունները՝ ցանկալիին հասնելու համար: Այս մոտեցումը հակասում է jQuery կոդը բնութագրող հրամայական մոտեցմանը:
jQuery-ում դուք հստակորեն գրում եք ցանկացած փոփոխություն կատարելու քայլերը: Եվ դեկլարատիվ շրջանակում դուք ասում եք, «Ըստ այս տվյալների, ինտերֆեյսը պետք է նման լինի»: Սա կարող է շատ ավելի հեշտացնել առանց սխալների կոդ գրելը:
Մշակողները որդեգրել են նոր մոտեցումներ վեբ կայքի մշակման հարցում, ինչի պատճառով էլ նվազել է jQuery-ի ժողովրդականությունը։
Ե՞րբ օգտագործել jQuery:
Այսպիսով, երբ պետք է օգտագործել jQuery?
Եթե նախագծի բարդությունը մեծանում է, ապա ավելի լավ է սկսել մեկ այլ գրադարանից կամ շրջանակից, որը թույլ է տալիս իմաստալից կառավարել բարդությունը: Օրինակ, ինտերֆեյսը բաժանեք բաղադրիչների: Նման կայքերում jQuery-ի օգտագործումը սկզբում կարող է լավ թվալ, բայց դա արագ կհանգեցնի սպագետտի կոդի, որտեղ վստահ չեք, թե որ հատվածն է ազդում էջի որ մասի վրա:
Ես եղել եմ այնպիսի իրավիճակում, երբ փորձում եմ ինչ-որ փոփոխություն անել, ինձ թվում է, թե դա բարդ խնդիր է։ Դուք չեք կարող վստահ լինել, որ ոչինչ չեք կոտրի, քանի որ jQuery ընտրիչները կախված են սերվերի կողմից ստեղծված HTML կառուցվածքից:
Սանդղակի մյուս ծայրում պարզ կայքեր են, որոնք պահանջում են միայն մի փոքր ինտերակտիվություն կամ դինամիկ բովանդակություն: Ես լռելյայն չէի սահմանի jQuery-ն այս դեպքերում, քանի որ շատ ավելին կարող եք անել բնիկ API-ներով:
Նույնիսկ եթե ինձ ավելի հզոր բան է պետք, ես կփնտրեմ մասնագիտացված գրադարան, օրինակ.
Կարծում եմ, որ jQuery-ի օգտագործման լավագույն հիմնավորումն այն է, որ այն ապահովում է համապարփակ ֆունկցիոնալություն կայքի ճակատային մասի համար: Տարբեր բնիկ API-ներ կամ մասնագիտացված գրադարաններ սովորելու փոխարեն, դուք կարող եք կարդալ միայն jQuery-ի փաստաթղթերը և ակնթարթորեն արդյունավետ դառնալ:
Իմպերատիվ մոտեցումը լավ չի չափվում, բայց ավելի հեշտ է սովորել, քան մյուս գրադարանների դեկլարատիվ մոտեցումը: Հստակ սահմանափակ հնարավորություններ ունեցող կայքի համար ավելի լավ է օգտագործել jQuery և հանգիստ աշխատել. գրադարանը չի պահանջում բարդ հավաքում կամ կոմպիլացիա:
Բացի այդ, jQuery-ն լավ է, եթե վստահ եք, որ ձեր կայքը ժամանակի ընթացքում չի բարդանա, և եթե ձեզ չի հետաքրքրում հայրենի ֆունկցիոնալությունը, ինչը, անշուշտ, կպահանջի ավելի շատ կոդ գրել, քան jQuery-ն:
Դուք կարող եք նաև օգտագործել այս գրադարանը, եթե Ձեզ անհրաժեշտ է աջակցել IE-ի հին տարբերակներին: Այնուհետև jQuery-ն ձեզ կծառայի այնպես, ինչպես այն ժամանակներում, երբ IE-ն ամենահայտնի զննարկիչն էր:
Նայեք ապագային
jQuery-ն շուտով չի անհետանա: Նա
Եթե jQuery-ի ֆունկցիոնալությունը էականորեն չփոխվի, հավանական է, որ գրադարանի օգտագործումը կշարունակի դանդաղ, բայց անշեղորեն նվազել առաջիկա մի քանի տարիների ընթացքում: Նոր կայքերը ի սկզբանե հակված են ստեղծվել ավելի ժամանակակից շրջանակների միջոցով, և jQuery-ի համար հարմար օգտագործման դեպքերը գնալով հազվադեպ են դառնում:
Որոշ մարդկանց դուր չի գալիս այն արագությունը, որով վեբ մշակման գործիքները հնանում են, բայց ինձ համար դա արագ առաջընթացի վկայություն է: jQuery-ն մեզ թույլ է տվել շատ բաներ ավելի լավ անել: Նույնը վերաբերում է նրա իրավահաջորդներին։
Source: www.habr.com