jQuery-ի պատմություն և ժառանգություն

jQuery-ի պատմություն և ժառանգություն
jQuery - սա ամենահայտնին է աշխարհում JavaScript գրադարան: Վեբ մշակման համայնքը ստեղծեց այն 2000-ականների վերջին, ինչի արդյունքում ստեղծվեց կայքերի, պլագինների և շրջանակների հարուստ էկոհամակարգ՝ օգտագործելով jQuery-ը:

Սակայն վերջին տարիներին նրա կարգավիճակը՝ որպես վեբ մշակման առաջնակարգ գործիք, քայքայվել է: Եկեք նայենք, թե ինչու է jQuery-ն դարձել հայտնի և ինչու է այն դուրս եկել նորաձևությունից, ինչպես նաև ինչ դեպքերում է դեռ նպատակահարմար օգտագործել այն ժամանակակից կայքեր ստեղծելու համար։

jQuery-ի համառոտ պատմություն

Ջոն Ռեսիգ (Ջոն Ռեսիգ) ստեղծել է գրադարանի առաջին տարբերակը 2005 թվականին, և հրապարակված 2006 թ-m, BarCampNYC կոչվող միջոցառմանը: Վրա 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');

Ժամանակի ընթացքում ընտրության մեխանիզմը դարձավ առանձին գրադարան Սիզել.

Գրադարանի երկրորդ առավելությունն այն էր, որ այն վերացարկեց բրաուզերների միջև եղած տարբերությունները: Այդ տարիներին դժվար էր գրել կոդ, որը կարող էր հուսալիորեն աշխատել բոլոր բրաուզերներում։

Ստանդարտացման բացակայությունը նշանակում էր, որ մշակողները պետք է հաշվի առնեին բրաուզերների և եզրային դեպքերի միջև եղած բազմաթիվ տարբերությունները: Նայեք այս վաղ jQuery-ի սկզբնական կոդը և որոնել jQuery.browser: Ահա մի օրինակ.

// 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-ը կարծում է, որ Կայքերի 74%-ն այսօր օգտագործում է jQuery.

jQuery-ի մշակման վերահսկողությունը նույնպես դարձել է ավելի պաշտոնական: Թիմը 2011թ ստեղծել է jQuery խորհուրդը. Իսկ jQuery Board-ին 2012թ վերածվել է jQuery հիմնադրամի.

2015 թվականին jQuery հիմնադրամը միավորվեց Dojo Foundation-ի հետ, ստեղծել JS հիմնադրամ, որն այնուհետև միաձուլվեց Node.js հիմնադրամի հետ 2019-մ ստեղծել OpenJS հիմնադրամ, որի շրջանակներում jQuery-ն մեկն էր «բեկումնային նախագծեր»

Փոփոխվող հանգամանքներ

Այնուամենայնիվ, վերջին տարիներին jQuery կորցրել է իր ժողովրդականությունը. GitHub հեռացրել է գրադարանը իմ կայքի ճակատային մասից. Bootstrap v5 ազատվել jQuery-իցորովհետև դա իրենն է»հաճախորդի ամենամեծ կախվածությունը սովորական JavaScript-ի համար«(ներկայումս 30 ԿԲ չափով, փոքրացված և փաթեթավորված): Վեբ զարգացման մի քանի միտումներ թուլացրել են jQuery-ի դիրքը՝ որպես կարևոր գործիք:

Браузеры

Մի շարք պատճառներով բրաուզերի տարբերություններն ու սահմանափակումները պակաս կարևոր են դարձել: Նախ, ստանդարտացումը բարելավվել է: Բրաուզերի խոշոր մշակողները (Apple, Google, Microsoft և Mozilla) աշխատում են միասին զարգացնելու համար վեբ ստանդարտներ ներսում Վեբ հիպերտեքստի կիրառման տեխնոլոգիաների աշխատանքային խումբ.
Թեև բրաուզերները դեռևս տարբերվում են միմյանցից մի շարք կարևոր առումներով, վաճառողները առնվազն հնարավորություն ունեն որոնելու և ընդհանուր տվյալների բազա ստեղծելու փոխարեն: մշտական ​​պատերազմ միասին. Համապատասխանաբար, բրաուզերի API-ները ձեռք են բերել նոր հնարավորություններ։ Օրինակ, Վերբեռնել API-ն ի վիճակի է փոխարինել Ajax ֆունկցիաները 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);
    });

Մեթոդներ querySelector и querySelectorAll կրկնօրինակ jQuery ընտրիչներ.

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

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

Այժմ կարող եք շահարկել տարրերի դասերը՝ օգտագործելով դասացանկ:

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

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

Կայքը Հնարավոր է, որ jQuery-ի կարիք չունենաք Ահա ևս մի քանի իրավիճակ, երբ jQuery կոդը կարող է փոխարինվել բնիկ կոդով: Որոշ մշակողներ միշտ հավատարիմ են մնում jQuery-ին, քանի որ նրանք պարզապես չգիտեն նոր API-ների մասին, բայց երբ գիտեն, սկսում են ավելի քիչ օգտագործել գրադարանը:

Ներքին գործառույթների օգտագործումը բարելավում է էջի աշխատանքը: Շատերը անիմացիոն էֆեկտներ jQuery-ից այժմ դուք կարող եք իրականացնել շատ ավելի արդյունավետ օգտագործելով CSS:

Երկրորդ պատճառն այն է, որ բրաուզերները շատ ավելի արագ են թարմացվում, քան նախկինում։ Նրանցից շատերը օգտագործում են «մշտադալար» նորացման ռազմավարություն, բացառությամբ Apple Safari-ի: Դրանք կարող են թարմացվել հետին պլանում՝ առանց օգտվողի մասնակցության և կապված չեն ՕՀ-ի թարմացումների հետ:

Սա նշանակում է, որ բրաուզերի նոր հնարավորությունները և սխալների շտկումը շատ ավելի արագ են բաշխվում, և մշակողները ստիպված չեն լինի սպասել մինչև Կարող եմ օգտվել կհասնի ընդունելի մակարդակի. Նրանք կարող են վստահորեն օգտագործել նոր հնարավորություններ և API-ներ՝ առանց jQuery կամ polyfills ներբեռնելու:

Երրորդ պատճառն այն է, որ Internet Explorer-ը մոտենում է բացարձակ անտեղի վիճակին: IE-ն վաղուց արդեն եղել է վեբ մշակման աղետը ողջ աշխարհում: Դրա սխալները լայնորեն տարածված էին, և քանի որ IE-ն գերակշռում էր 2000-ականներին և չէր օգտագործում մշտադալար թարմացման ռազմավարություն, հին տարբերակները դեռևս տարածված են:

2016 թվականին Microsoft-ը արագացրել է IE-ի ապամոնտաժումը, դադարում է աջակցել տասներորդ և ավելի վաղ տարբերակները, որոնք սահմանափակվում են IE 11-ի աջակցությամբ: Եվ գնալով ավելի ու ավելի են վեբ մշակողները շքեղություն ունեն անտեսելու IE-ի համատեղելիությունը:

Դրանից հետո նույնիսկ jQuery-ն դադարել է աջակցել IE 8 և ավելի ցածր տարբերակը 2.0, հրատարակվել է 2013 թ. Եվ չնայած որոշ դեպքերում IE-ի աջակցությունը դեռևս պահանջվում է, օրինակ՝ ավելի հին կայքերում, այդ իրավիճակներն ավելի ու ավելի հազվադեպ են առաջանում:

Նոր շրջանակներ

jQuery-ի հայտնվելուց ի վեր ստեղծվել են բազմաթիվ շրջանակներ, այդ թվում՝ ժամանակակից առաջատարներ Արձագանքել, Անկյունային и Vue. Նրանք երկու կարևոր առավելություն ունեն jQuery-ի նկատմամբ.

Նախ, դրանք հեշտացնում են օգտագործողի միջերեսը բաղադրիչների բաժանելը: Շրջանակները նախատեսված են էջի վերարտադրման և թարմացման համար: Իսկ jQuery-ն սովորաբար օգտագործվում է միայն թարմացման համար՝ թողնելով սկզբնական էջը սերվերին տրամադրելու խնդիրը։

Մյուս կողմից, React, Angular և Vue բաղադրիչները թույլ են տալիս սերտորեն զուգակցել HTML-ը, կոդը և նույնիսկ CSS-ը: Ինչպես մենք բաժանում ենք կոդերի բազան բազմաթիվ ինքնուրույն գործառույթների և դասերի, այնպես էլ միջերեսը բազմակի օգտագործման բաղադրիչների բաժանելու հնարավորությունը հեշտացնում է բարդ կայքերի կառուցումն ու պահպանումը:

Երկրորդ առավելությունն այն է, որ ավելի նոր շրջանակները պահպանում են դեկլարատիվ պարադիգմը, որտեղ ծրագրավորողը նկարագրում է, թե ինչպիսին պետք է լինի ինտերֆեյսը և թողնում է շրջանակին՝ կատարել բոլոր անհրաժեշտ փոփոխությունները՝ ցանկալիին հասնելու համար: Այս մոտեցումը հակասում է jQuery կոդը բնութագրող հրամայական մոտեցմանը:

jQuery-ում դուք հստակորեն գրում եք ցանկացած փոփոխություն կատարելու քայլերը: Եվ դեկլարատիվ շրջանակում դուք ասում եք, «Ըստ այս տվյալների, ինտերֆեյսը պետք է նման լինի»: Սա կարող է շատ ավելի հեշտացնել առանց սխալների կոդ գրելը:

Մշակողները որդեգրել են նոր մոտեցումներ վեբ կայքի մշակման հարցում, ինչի պատճառով էլ նվազել է jQuery-ի ժողովրդականությունը։

Ե՞րբ օգտագործել jQuery:

Այսպիսով, երբ պետք է օգտագործել jQuery?

Եթե ​​նախագծի բարդությունը մեծանում է, ապա ավելի լավ է սկսել մեկ այլ գրադարանից կամ շրջանակից, որը թույլ է տալիս իմաստալից կառավարել բարդությունը: Օրինակ, ինտերֆեյսը բաժանեք բաղադրիչների: Նման կայքերում jQuery-ի օգտագործումը սկզբում կարող է լավ թվալ, բայց դա արագ կհանգեցնի սպագետտի կոդի, որտեղ վստահ չեք, թե որ հատվածն է ազդում էջի որ մասի վրա:

Ես եղել եմ այնպիսի իրավիճակում, երբ փորձում եմ ինչ-որ փոփոխություն անել, ինձ թվում է, թե դա բարդ խնդիր է։ Դուք չեք կարող վստահ լինել, որ ոչինչ չեք կոտրի, քանի որ jQuery ընտրիչները կախված են սերվերի կողմից ստեղծված HTML կառուցվածքից:

Սանդղակի մյուս ծայրում պարզ կայքեր են, որոնք պահանջում են միայն մի փոքր ինտերակտիվություն կամ դինամիկ բովանդակություն: Ես լռելյայն չէի սահմանի jQuery-ն այս դեպքերում, քանի որ շատ ավելին կարող եք անել բնիկ API-ներով:

Նույնիսկ եթե ինձ ավելի հզոր բան է պետք, ես կփնտրեմ մասնագիտացված գրադարան, օրինակ. axios Այաքսի համար կամ Animate.css անիմացիաների համար։ Սա ավելի հեշտ կլինի, քան ամբողջ jQuery-ի բեռնումը փոքր ֆունկցիոնալության համար:

Կարծում եմ, որ jQuery-ի օգտագործման լավագույն հիմնավորումն այն է, որ այն ապահովում է համապարփակ ֆունկցիոնալություն կայքի ճակատային մասի համար: Տարբեր բնիկ API-ներ կամ մասնագիտացված գրադարաններ սովորելու փոխարեն, դուք կարող եք կարդալ միայն jQuery-ի փաստաթղթերը և ակնթարթորեն արդյունավետ դառնալ:

Իմպերատիվ մոտեցումը լավ չի չափվում, բայց ավելի հեշտ է սովորել, քան մյուս գրադարանների դեկլարատիվ մոտեցումը: Հստակ սահմանափակ հնարավորություններ ունեցող կայքի համար ավելի լավ է օգտագործել jQuery և հանգիստ աշխատել. գրադարանը չի պահանջում բարդ հավաքում կամ կոմպիլացիա:

Բացի այդ, jQuery-ն լավ է, եթե վստահ եք, որ ձեր կայքը ժամանակի ընթացքում չի բարդանա, և եթե ձեզ չի հետաքրքրում հայրենի ֆունկցիոնալությունը, ինչը, անշուշտ, կպահանջի ավելի շատ կոդ գրել, քան jQuery-ն:

Դուք կարող եք նաև օգտագործել այս գրադարանը, եթե Ձեզ անհրաժեշտ է աջակցել IE-ի հին տարբերակներին: Այնուհետև jQuery-ն ձեզ կծառայի այնպես, ինչպես այն ժամանակներում, երբ IE-ն ամենահայտնի զննարկիչն էր:

Նայեք ապագային

jQuery-ն շուտով չի անհետանա: Նա ակտիվորեն զարգանում է, և շատ մշակողներ նախընտրում են օգտագործել իր API-ն, նույնիսկ եթե առկա են բնօրինակ մեթոդներ: Գրադարանը օգնել է ծրագրավորողների մի ամբողջ սերունդ ստեղծել կայքեր, որոնք աշխատում են ցանկացած բրաուզերի վրա: Չնայած այն շատ առումներով փոխարինվել է նոր գրադարաններով, շրջանակներով և պարադիգմներով, jQuery-ն հսկայական դրական դեր է խաղացել ժամանակակից համացանցի ստեղծման գործում:

Եթե ​​jQuery-ի ֆունկցիոնալությունը էականորեն չփոխվի, հավանական է, որ գրադարանի օգտագործումը կշարունակի դանդաղ, բայց անշեղորեն նվազել առաջիկա մի քանի տարիների ընթացքում: Նոր կայքերը ի սկզբանե հակված են ստեղծվել ավելի ժամանակակից շրջանակների միջոցով, և jQuery-ի համար հարմար օգտագործման դեպքերը գնալով հազվադեպ են դառնում:

Որոշ մարդկանց դուր չի գալիս այն արագությունը, որով վեբ մշակման գործիքները հնանում են, բայց ինձ համար դա արագ առաջընթացի վկայություն է: jQuery-ն մեզ թույլ է տվել շատ բաներ ավելի լավ անել: Նույնը վերաբերում է նրա իրավահաջորդներին։

Source: www.habr.com

Добавить комментарий