jQuery

Վիքիպեդիայից՝ ազատ հանրագիտարանից
JQuery
Նախագծումը՝ Ջոն Ռեզիգ
Վերջին թողարկում 1.8.3 / 13 նոյեմբերի, 2012թ.[1]
Գրված է՝ JavaScript
ՕՀ Ցանկացած
Տեսակ JavaScript գրադարան
Արտոնագիր MIT արտոնագիր
Վեբկայք jquery.com

jQuery, JavaScript գրադարան, որն կենտրոնացված է JavaScript-ի և HTML-ի փոխազդեցությունն հեշտացնելու համար։ jQuery գրադարանի օգնությամբ կարելի է հեշտությամբ ընտրել DOM տարրը, դիմել դրա ատրիբուտներին ու բովանդակությանը, փոփոխել դրանք։ jQuery ունի նաև AJAX-ի հետ աշխատելու համար պարզ և հասկանալի API։

Ստեղծման պատմությունը[խմբագրել]

Երբ Ջոն Ռեզինգը սկսեց հետաքրքրվել ծրագրավորմամբ, առաջինը, ինչ նա ուսումնասիրեց վեբ-ծրագրավորումից, դա HTML-ն էր։ Ռեզինգն արդեն կարողանում էր ծրագրավորել QBasic-ով, երբ իր ծանոթներից մեկը ցուցադրեց, թե ինչպես կարելի է ստեղծել վեբ-էջ Angelfire ծրագրի միջոցով՝ օգտագործելով HTML-ը։ Հայրը Սուրբ ծննդյան տոներին նվիրեց նրան HTML-ի երկու գիրք։ Այն ժամանակ, երբ նա սկսեց ծրագրավորել Visual Basic լեզվով, HTML-ն ու վեբ-դիզայնը սկսեցին հետաքրքրել նրան։

Բայց JavaScript-ի նկատմամբ իր հետաքրքրությունը սկսեց ավելի ուշ, մոտավորապես 2004 թ.։ Այդ տարի Ռեզինգը համակարգչային գիտությունների ոլորտում աստիճան ստացավ և, որոշ ժամանակ անց, կես դրույքով սկսեց աշխատել տեղական Brand Logic ընկերությունում։ Նա զբաղվում էր մի կայքի դիզայնով, որտեղ ստեղծվում էր scroll էֆեկտ։ Ջոնին դուր չէր գալիս այն, որ ինքն ստիպված է օգտագործել այլ մշակողների կոդը։ Նա որոշեց, որ պետք է լուրջ ուսումնասիրի JavaScript-ը։ Ուսումնասիրելով այն, նա հասկացավ, որ JavaScript-ը պարզ, բայց նուրբ լեզու է։ Այն բավականին հզոր է և կարող է օգնել լուծել բավականին լուրջ և դժվար խնդիրներ։ Հաջորդ մի քանի տարիների ընթացքում Ջոնը ստեղծեց տարբեր JavaScript ծրագրեր, մինչև ավարտեց jQuery-ի մշակումը։ jQuery-ի ստեղծման հիմնական նպատակն էր գրել JavaScript-ի հետ աշխատանքը հեշտացնող բազմանգամյա օգտագործման կոդեր, ինչպես նաև դրա միջոցով մոռանալ տարբեր բրաուզերների կողմից այս կամ այն բանի աջակցության մասին։ Գրադարանը ներկայացվեց 2006 թ. Նյու-Յորքում կայացած «BarCamp» կոնֆերանսի ժամանակ։

Առանձնահատկություններ[խմբագրել]

  • Բոլոր առաջատար բրաուզերներում աշխատող CSS ընտրիչների Sizzle շարժիչը[2], որն առանձնացված է այլ նախագծում,
  • Անցումը DOM-ի տարբեր մասերի ինչպես վերը նշված CSS ընտրիչների, այնպես էլ XPath-ի միջոցով (վերջինի համար հարկավոր է տեղադրել հատուկ հավելված),
  • Իրադարձություններ,
  • Տեսողական էֆեկտներ,
  • AJAX,
  • JavaScript հավելվածներ (փլագիններ)։

Օգտագործումը[խմբագրել]

jQuery-ն, որպես կանոն, միացվում է HTML փաստաթղթին ինչպես սովորական JavaScript ֆայլ։

<head>
    <script type="text/javascript" src="path/to/jQuery.js"></script>
</head>

jQuery-ի հետ ամբողջ աշխատանքը հիմնականում կատարվում է $ ֆունկցիայի միջոցով։ Եթե կայքում jQuery-ից բացի օգտագործվում են այլ JavaScript գրադարաններ, որոնցում $ նշանը օգտագործվում է այլ նպատակներով, ապա դրա փոխարեն կարելի է օգտագործել այլ ֆունկցիայի հոմանիշը՝ jQuery ֆունկցիան։ Երկրորդ եղանակով կատարվող աշխատանքը համարվում է ավելի ճիշտ։ Բայց, որպեզի երկրորդ եղանակով գրված կոդը շատ մեծ չստացվի, կարելի է այն գրել հետևյալ կերպ.

jQuery(function($) {
  // այստեղ $ նշանը միշտ համարվում է jQuery օբյեկտ անկախ այլ գրադարանների առկայությունից
})

jQuery-ի հետ աշխատանքը կարելի է բաժանել 2 տեսակի՝

  • $() ֆունկցիայի միջոցով jQuery օբյեկտի ստացում։ Օրինակ, որպես այդ ֆունկցիայի պարամետր գրելով որևէ CSS ընտրիչ, կարելի է ստանալ այդ ընտրիչին համապատասխանող HTML տարրերի jQuery օբյեկտը, որի տարբեր մեթոդների միջոցով մենք կարող ենք աշխատել այդ տարրերի հետ։ Եթե մեթոդը ոչինչ չունի վերադարձնելու, ապա այն վերադարձնում է այդ jQuery օբյեկտի հղումը։ Դա հնարավորությունն է տալիս կիրառել, այսպես կոչված, «հոսող միջերես»։
  • $ օբյեկտի գլոբալ պարամետրերի կանչում։

Այս օրինակում ներկայացված է, թե ինչպես կարելի է ընտրել միանգամից մի քանի DOM հանգույցներ։ Այստեղ $ ֆունկցիային տրվում է որոշակի CSS ընտրիչ, որի արդյունքում ֆունկցիան վերադարձնում է jQuery օբյեկտ։ Այդ օբյեկտը իր մեջ պարունակում է HTML էջի որոշակի քանակով տարրեր։ Այնուհետև այդ տարրերի հետ jQuery-ի մեթոդների միջոցով փոփոխություններ է կատարվում։

$("div.test").add("p.quote").addClass("blue").slideDown("slow");

jQuery-ն գտնում է էջի բոլոր div տարրերը, որոնք ունեն test դաս, ինչպես նաև բոլոր p տարրերը, որոնք ունեն quote դաս, այնուհետև բոլոր դրանց ավելացնում է blue դաս և տեսանելիորեն դանդաղ իջեցնում է դրանք։ Այստեղ add, addClass և slideDown մեթոդները վերադարձնում են ընթացիկ $("div.test") օբյեկտի հղումը։ Հենց դրա շնորհիվ է, որ հնարավոր է դառնում այսպիսի շղթա ստեղծել։

$.-ով սկսվող մեթոդները հարմար են կիրառել գլոբալ օբյեկտների վերամշակման համար։

$.each([1,2,3], function() {
  document.write(this + 1);
});

Այս օրինակում էջի վրա կերևա 234 գրառումը։

$.ajax-ը և այլ համապատասխան ֆունկցիաներ հնարավորություն են տալիս օգտագործել AJAX-ի մեթոդները։ Օրինակ՝

$.ajax({
  type: "POST",
  url: "some.php",
  data: {name: 'John', location: 'Boston'},
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});

Այս օրինակում դիմում ենք some.php սկրիպտին name=John&location=Boston պարամետրերով, իսկ ստացված արդյունքը արտարծվում է alert()-ի միջոցով։

Իսկ ահա այս օրինակում մենք jQuery―ի միջոցով տարրին ավելացնում ենք click իրադարձության վերամշակիչ՝

  $("a").click(function() {
    alert("Hello world!");
  });

Տվյալ դեպքում, <A> տարրին մկնիկով կտտացնելուց հետո կկատարվի alert("Hello world!") կոդը, այսինքն՝ կարտարծվի «Hello world!» արտահայտությունը։

Տարբերակների պատմությունը[խմբագրել]

Տարբերակ Հղումներ Թողարկման ամսաթիվ Փոփոխությունները
1.0 - 30 հունիսի, 2006թ. Առաջին alpha-տարբերակը
1.0 սեղմ. 26 օգոստոսի, 2006թ. Գրադարանի առաջին ստաբիլ տարբերակը։ Այս տարբերակից հետո պարզ դարձավ, որ մշակողները մտադիր են ավելացնել CSS ընտրիչների, AJAX տեխնոլոգիայի և իրադարձությունների մեխանիզմի աջակցությունը։
1.0.1 սեղմ., չսեղմ. 31 օգոստոսի, 2006թ. Առաջին տարբերակը՝ սխալների ուղղմամբ
1.0.2 սեղմ., չսեղմ. 9 հոկտեմբերի, 2006թ. Կիրառական ծրագրավորման միջերեսի փոփոխություն
1.0.3 սեղմ., չսեղմ. 27 հոկտեմբերի, 2006թ. -
1.0.4 սեղմ., չսեղմ. 12 դեկտեմբերի, 2006թ. -
1.1a - 8 հունվարի, 2007թ. Alpha-տարբերակ
1.1b - 11 հունվարի, 2007թ. Beta-տարբերակ
1.1 սեղմ., չսեղմ. 14 հունվարի, 2007թ. Այս տարբերակում գրադարանի API-ն լուրջ փոփոխությունների է ենթարկվել։ Որոշ հազվադեպ օգտագործվող մեթոդներ միացվել են իրար, ինչի շնորհիվ կրճատվել է մեթոդների թիվը։
1.1.1 սեղմ., չսեղմ. 22 հունվարի, 2007թ. -
1.1.2 սեղմ., չսեղմ. 27 փետրվարի, 2007թ. -
1.1.3a - 20 մայիսի, 2007թ. Alpha-տարբերակ
1.1.3 սեղմ., չսեղմ. 1 հուլիսի, 2007թ. Այս տարբերակում զգալիորեն բարելավվեց jQuery-ի ընտրիչների մեխանիզմի արտադրողականությունը։ Սկսած այս տարբերակից, jQuery-ի արտադրողականությունը կարելի էր համեմատել այնպիսի JavaScript գրադարանների հետ, ինչպիսիք են Prototype-ը, Mootools-ը և Dojo-ն։ Ընդամենը 20 ԿԲ ծավալով գրադարնում արագագործությունը մեծացվեց ավելի քան 8 անգամ[3]
1.1.3.1 սեղմ., չսեղմ. 5 հուլիսի, 2007թ. -
1.1.4 սեղմ., չսեղմ. 24 օգոստոսի, 2007թ. -
1.2 փոքր., սեղմ., չսեղմ. 10 սեպտեմբերի, 2007թ. Այս տարբերակից հեռացվեց տարրերի ընտրման XPath եղանակը, քանի որ CSS ընտրիչների առկայության դեպքում այն արդեն անօգուտ էր դարձել։ Այս տարբերակում էֆեկտների կարգավորումն ավելի ճկուն դարձավ, իսկ անվանատարածքներում իրադարձությունների կառավարման տրամաբանության ավելացման շնորհիվ ընդլայնումների մշակումն ավելի հեշտացավ։
1.2.1 փոքր., սեղմ., չսեղմ. 16 սեպտեմբերի, 2007թ. -
1.2.2 փոքր., սեղմ., չսեղմ. 15 հունվարի, 2008թ. -
1.2.3 փոքր., սեղմ., չսեղմ. 8 փետրվարի, 2008թ. -
1.2.4 փոքր., սեղմ., չսեղմ. 19 մայիսի, 2008թ. -
1.2.5 փոքր., սեղմ., չսեղմ. 21 մայիսի, 2008թ. -
1.2.6 փոքր., սեղմ., չսեղմ., փաստ. 24 մայիսի, 2008թ. Հիմնական գրադարանում ներառվեցին ընդլայնումների հայտնի մոդուլի՝ Dimensions-ի ֆունկցիոնալ հնարավորությունները։
1.3 փոքր., չսեղմ., փաստ. 14 հունվարի, 2009թ. Ընտրիչների մեխանիզմը (Sizzle-ը) զգալիորեն փոփոխվեց, ինչի շնորհիվ գրադարանի արտադրողականությունը նույնպես զգալիորեն մեծացավ։ Ավելացվեց live() մեթոդը։
1.3.1 փոքր., չսեղմ., փաստ. 21 հունվարի, 2009թ. -
1.3.2 փոքր., չսեղմ., փաստ. 20 փետրվարի, 2009թ. -
1.4 փոքր., չսեղմ. 14 հունվարի, 2010թ. Իրադարձությունների վերամշակման օպտիմիզացում։ Նոր .closest(Array)[4] մեթոդի ավելացում։ Հիմնական ֆունկցիաների արագագործությունը ավելացել է ավելի քան 3 անգամ
1.4.1 փոքր., չսեղմ. 25 հունվարի, 2010թ. Վերանվանվել են կենտրոնացում ստանալու և կորցնելու իրադարձությունները։ .die()-ը հեռացնում է .live()-ի միջոցով հետևվող իրադարձությունների վերամշակիչները։ jQuery.error()-ը գեներացնում է բացառությունները։ .height() և .width() մեթոդները վերադարձնում են առաջին գտնված տարրի՝ բրաուզերի կողմից հաշվված, համապատասխանաբար, բարձրությունն ու լայնությունը։ jQuery.parseJSON()-ի վերածում է JSON տեղը սովորական օբյեկտի[5]։
1.4.2 փոքր., չսեղմ. 19 փետրվարի, 2010թ. Ավելացվել են նոր .delegate() և .undelegate()[6] մեթոդները։ Բարելավվել է .bind(), .unbind(), .empty(), .remove() և .html() մեթոդների արտադրողականությունը։
1.4.3 փոքր., չսեղմ. 16 հոկտեմբերի, 2010թ. Բազմաթիվ փոփոխություններ [7]։
1.4.4 փոքր., չսեղմ. 11 նոյեմբերի, 2010թ. Ավելացվել է .fadeToggle()[8] մեթոդը
1.5 փոքր., չսեղմ. 31 հունվարի, 2011թ. Վերագրված է AJAX-ի մոդուլը։ Ավելացվել է .sub() մեթոդը, որը թույլ է տալիս կլոնավորել jQuery օբյեկտները։ .children(), .prev() և .next() մեթոդների կատարման բարձր արագություն։ [9]
1.5.1 փոքր., չսեղմ. 24 փետրվարի, 2011թ. Սխալների ուղղում։ IE9 աջակցում[10]
1.5.2 փոքր., չսեղմ. 24 փետրվարի, 2011թ. Սխալների ուղղում [11]
1.6 փոքր., չսեղմ. 24 փետրվարի, 2011թ.
  • 4 սխալների ուղղում,
  • data() մեթոդի արտադրողականության բարելավվում,
  • Փոփոխություններ, որոնք «կոտրում» են համատեղելիությունը (փոփոխվել են `data()`, `attr()` և `prop()` մեթոդները) [12]
1.6.1 փոքր., չսեղմ. 12 մայիսի, 2011թ. Սխալների ուղղում[13]
1.6.2 փոքր., չսեղմ. 30 հունիսի, 2011թ. - [14]
1.6.3 փոքր., չսեղմ. 31 օգոստոսի, 2011թ. -
1.6.4 փոքր., չսեղմ. 12 սեպտեմբերի, 2011թ. -
1.7 փոքր., չսեղմ. 3 նոյեմբերի, 2011թ. -
1.7.1 փոքր., չսեղմ. 21 նոյեմբերի, 2011թ. -
1.7.2 փոքր., չսեղմ. 21 մարտի, 2012թ. -
1.8.0 փոքր., չսեղմ. 9 օգոստոսի, 2012թ. -
1.8.1 փոքր., չսեղմ. 30 օգոստոսի, 2012թ. -
1.8.2 փոքր., չսեղմ. 20 սեպտեմբերի, 2012թ. -
1.8.3 փոքր., չսեղմ. 13 նոյեմբերի 2012թ. Սխալների ուղղում[15]
1.9.0 սկսվելու է 2013թ.-ից Հնացած միջերեսների հեռացում և կոդի մաքրում[16]
2.0.0 սկսվելու է 2013թ.-ից Internet Explorer-ի 6-8 տարբերակներն այլևս չեն աջակցվելու՝ արտադրողականության բարձրացման և ֆայլերի չափսերի փոքրացման նպատակով[16]
Հապավումներ
փոքր.  - փոքրացված սեղմ.  - սեղմված չսեղմ.  - չսեղմված փաստ.  - Visual Studio-ի փաստաթուղթ

Այլ ապրանքների հետ ինտերգրացումը[խմբագրել]

2008թ. սեպտեմբերի 28-ին jQuery-ի պաշտոնական բլոգում[17] հայտնեցին այն մասին, որ Microsoft և Nokia ընկերությունները պատրաստվում են համագործակցել նշակողների խմբի հետ։ Microsoft ընկերությունը պատրաստվում է ինտեգրացնել jQuery-ի կոդի և օրինակների ելատեքստը ASP.NET-ի հետ, իսկ Nokia-ն պատրաստվում է ինտեգրացնել jQuery-ն իր բջջային վիդջեթներում։

Մշակողների թիմը[խմբագրել]

Գրադարանի վրա աշխատանքները բաժանված են 5 խմբերի։

Խմբեր Նկարագրություն Մասնակիցներ
Մշակողներ Պատասխանատու են գրադարանի բովանդակության համար (գրադարանի մշակում, թեստավորում, փաստաթղթավորում և այլն)։
  • John Resing
  • Brandon Aaron
  • Ariel Flesler
  • Jörn Zaefferer
  • CyberMerlin
PR Հասարակության հետ կապի պատասխանատուներ։
  • Rey Bango
  • Karl Swedberg
  • Cody Lindley
jQuery UI jQuery UI-ի մշակումն ու աջակցումը[18]
  • Paul Bakaus
  • Richard D. Worth
  • Scott González
  • Todd Parker
  • Otros[19]
Plugins Հավելումների համար պատասխանատուներ
  • Yehuda Katz
  • Klaus Hartl
  • Mike Alsup
Web դիզայներներ jQuery-ի կայքի դիզայնի և աջակցման պատասխանատուներ[20]
  • Scott Jehl
  • Mike Hostetler

Տես նաև[խմբագրել]

Ծանոթագրություններ[խմբագրել]

  1. Resig, John։ «jQuery 1.8.3 Released» (en)։ http://blog.jquery.com/2012/11/13/jquery-1-8-3-released/։ Վերցված է 2012-11-13։ 
  2. CSS selector engine
  3. 1.1.3 թողարկման մասին գրառումը jQuery-ի պաշտոնական բլոգում
  4. Resig, John։ «.closest(Array) in jQuery 1.4»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrGtGvJ։ Վերցված է 2010-01-15։ 
  5. «Version 1.4.1» (en)։ jquery.com։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrLCwSw։ Վերցված է 2010-01-26։ 
  6. «Version 1.4.2»։ jquery.com։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrMoJ8X։ Վերցված է 2010-02-20։ 
  7. «Version 1.4.3»։ jquery.com։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrPBhBj։ Վերցված է 2010-11-14։ 
  8. «Version 1.4.4»։ jquery.com։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrRbVm1։ Վերցված է 2010-11-14։ 
  9. «jQuery 1.5 Released»։ jquery.com։ Արխիվացված օրիգինալից 2012-06-26-ին։ http://www.webcitation.org/68iFXY1jH։ Վերցված է 2011-01-31։ 
  10. «jQuery 1.5.1 Released»։ jquery.com։ Արխիվացված օրիգինալից 2012-08-06-ին։ http://www.webcitation.org/69ioblau8։ Վերցված է 2011-02-24։ 
  11. «jQuery 1.5.2 Released»։ jquery.com։ Արխիվացված օրիգինալից 2012-08-06-ին։ http://www.webcitation.org/69iocLUvA։ Վերցված է 2011-03-31։ 
  12. «jQuery 1.6 Released»։ jquery.com։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrS3vSd։ Վերցված է 2011-05-03։ 
  13. Resig, John։ «JQuery 1.6.1 Released» (en)։ Արխիվացված օրիգինալից 2012-08-07-ին։ http://www.webcitation.org/69itD7azs։ Վերցված է 2011-07-04։ 
  14. Resig, John։ «Jquery 1.6.2 Released» (en)։ Արխիվացված օրիգինալից 2012-08-07-ին։ http://www.webcitation.org/69itDeOsY։ Վերցված է 2011-07-04։ 
  15. «jQuery 1.8.3 Released»։ jquery.com։ Արխիվացված օրիգինալից 2012-11-20-ին։ http://www.webcitation.org/6CJF6EEPF։ Վերցված է 2012-11-17։ 
  16. 16,0 16,1 «jQuery Core: Version 1.9 and beyond»։ jquery.com։ Արխիվացված օրիգինալից 2012-11-20-ին։ http://www.webcitation.org/6CJF6l3LC։ Վերցված է 2012-11-17։ 
  17. «jQuery-ի պաշտոնական բլոգը»։ Արխիվացված օրիգինալից 2012-08-07-ին։ http://www.webcitation.org/69itE7IiR։ 
  18. «jQuery UI-ի պաշտոնական կայքը»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrThEVJ։ Վերցված է 2009-06-03։ 
  19. «jQuery UI-ի մասին»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nrUByTb։ Վերցված է 2009-06-03։ 
  20. «jQuery-ի պաշտոնական կայքը»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65nw4uFvK։ Վերցված է 2009-06-03։ 

Հղումներ[խմբագրել]