ЏејКвери () је вишеплатмфорска Јаваскрипт () библиотека дизајнирана да поједностави скриптовање са корисничке стране језика HTML.
ЏејКвери је најпопуларнија Јаваскрипт библиотека у употреби данас коју користи 65% од најпосећенијих 10 милиона сајтова на вебу.http://libscore.com/#libs ЏејКвери је слободан и софтвер отвореног изворног кода лиценциран под МИТ лиценцом.
Синтакса ЏејКвери библиотеке је дизајнирана да поједностави навигацију ка документу, селектовање ДОМ елемената, прављење анимација, обрађивање догађаја и развој Ајакс () апликација. ЏејКвери такође пружа могућност програмерима да направе додатке преко Јаваскрипт библиотеке. Ово омогућава програмерима да направе апстракције за интеракцију ниског нивоа и анимацију, напредне ефекте и виџете високог нивоа који могу имати теме. Модуларни приступ ЏејКвери библиотеци омогућава стварање моћних динамичких веб страна и веб апликација.
Комплет основних могућности ЏејКвери библиотеке — селектовање ДОМ () елемента, промена и манипулација омогућена машином за селектовање (названа Сизл () из верзије 1.3) креирала је нови ”стил програмирања”, повезујући алгоритме и структуре ДОМ података. Овај стил је утицао на архитектуру других Јаваскрипт окружења YUI v3 и Доџо (), касније поспешујући креирање стандардног АПИ-ја за селектовање."Selectors API Level 1, W3C Recommendation" (21 February 2013). This standard turned what was jQuery "helper methods" into JavaScript-native ones, and the wide use of jQuery stimulated the fast adoption of querySelector/querySelectorAll into main Web browsers.
Мајкрософт () и Нокија () су повезали ЏејКвери на своје платформе. Мајкрософт га укључује у Вижуал Студио () за употребу у АСП. НЕТ АЈАКС и АСП. НЕТ MVC окружењима које је конструисао Мајкрософт, док га је Нокија интегрисала у веб платформу која показује развој виџета у реалном времену. ЏејКвери је употребљаван у Медиа Викију од верзије 1.16.
Преглед ЏејКвери је, у својој сржи, ДОМ за контролу над библиотекама. ДОМ је дрволика репрезентација свих елемената веб стране и ЏејКвери поједностављује синтаксу за проналажење, селектовање и манипулацију тих ДОМ елемената. На пример, ЏејКвери се може користити за проналажење елемената у документу са одређеним својствима (нпр. сви елементи са h1 етикетом ), мењање једног или више његових својства (нпр. боја, видљивост), или правити га таквог да реагује на догађај (нпр. клик мишем).
ЏејКвери такође нуди парадигму за руковођење догађајима који превазилазе основне ДОМ могућности селекције и манипулације елементом. Дефинисање функција за доделу догађаја и опозивање догађаја раде се у једном кораку и на једном месту у коду. ЏејКвери такође циља ка укључивању других изузетно коришћених Јаваскрипт функционалности (нпр. анимације приликом манипулације над CSS својствима).
Предности при коришћењу Џејкверија: Стимулише раздвајање Јаваскрипте и HTML-а: ЏејКвери библиотека нуди једноставну синтаксу за додавање руководиоца догађајем ДОМ-у при коришћењу Јаваскрипте, што је боље од додавања атрибута HTML догађају за позивање Јаваскрипт функција. Према томе, подржава веб програмере да потпуно раздвоје Јаваскрипт код од HTML ознака. Све је кратко и јасно: ЏејКвери промовише кратак и јасан код са карактеристикама попут могућег уланчавања функција и кратких и описних имена функција. Елиминише некомпатибилности при писању кода за различите претраживаче: Јаваскрипт погон различитих претраживача се незнатно разликује па Јаваскрипт код који ради на једном претраживачу можда неће радити на неком другом. Попут других Јаваскрипт група алата, ЏејКвери контролише све неконзистентности међу различитим прегледачима и нуди конзистентан интерфејс који ради на свим прегледачима. Лако се надограђује: Нови догађаји, елементи и методе могу се једноставно додати и потом поново искористити у облику додатака.
Особине ЏејКвери укључује следеће особине: Селектовање ДОМ елемената коришћењем више-претраживачком библиотеком отвореног кода селекторске машине, као нуспроизвод ЏејКвери пројекта Манипулација ДОМ елементима на основу CSS селектора који користе имена и особине елемената ако што су id и class, као критеријуми за селекцију елемената у ДОМ Догађаји Ефекти и анимације Ajaks Одложени и Обећани објекти за контролу несинхроне обраде Парсирање JSON-а Проширивање помоћу додатака Алати, као што је детектовање особина Методе за детектовање сагласности које су изворно доступне у модерним претраживачима, али постоји потреба за "fall backs"-ом за старије, као inArray() и each() Више претраживачка (не треба их помешати са крос претраживачима) помоћ
Подршка за прегледачима Верзија 1.х као и верзија 2.х ЏејКвери библиотеке подржавају тренутне 1 верзије (што значи тренутну стабилну верзију прегледачима и верзије које су јој претходиле) Фајерфокса (), Хрома (), Сафарија () и Опере (). Верзија 1.х такође подржава Интернет Експлорер 6 () или новије верзије. Међутим верзија 2.х ЏејКвери библиотеке не подржава Интернет експлорер верзије 6 до 8 (који представљају само 2% укупне употребе веб прегледачима)CanIUse Browser Usage Table и подржава само верзију 9 и новије верзије.Browser Support | jQuery
Коришћење
Укључење библиотеке ЏејКвери библиотека је Јаваскрипт документ који садржи догађаје, ефекте и Ајакс функције. Може се укључити у веб страницу линковањем на локалну копију или на једну од многих копија које су доступне на серверима.
Повезивање са локалном копијом: <script src="jquery.js"></script>
Повезивање са копијом на серверу: <script src="https://code.jquery.com/jquery-latest.min.js"></script>
Стилови коришћења
ЏејКвери има два стила коришћења: Помоћу $ функције, која је фабрички метод ЏејКвери објеката. Ове функције је могуће уланчавати, пошто све враћају ЏејКвери објекат. Помоћу$.-префиксних функција. Оне се не односе директно на ЏејКвери објекте.
Приступ и манипулација више DOM чворова у ЏејКверију типично почиње позивом $ функције чији је аргумент CSS селектор (као ниска). Она враћа ЏејКвери објекат који реферише на све одговарајуће HTML елемента странице. $("div.test"), на пример, враћа ЏејКвери објекат са свим div елементима класе test. Овај скуп чворова може бити манипулисан позивајући методе на ЏејКвери објекат или на саме чворове.
Мод без преклапања ЏејКвери такође садржи .noConflict() мод, који се ослобађа $. Ово може бити корисно, ако се ЏејКвери користи са другим бибилиотекама које такође користе $ као идентификатор. У овом моду програмери могу користити идентификатор jQuery као замену за $ без губљења функционалности.
Типичан скелет
Типично коришћење ЏејКвери библиотеке је креирање догађаја помоћу методе .ready(). Ова метода ће бити покренута када претраживач конструише DOM стабло и пошаље "load" догађај.
<script type="text/javascript"> $(document).ready(function(){ // jQuery код, хватање догађаја овде }); </script>
"Callback" функције су такође садржане у .ready() као анонимне функције, али се позивају када је покренут догађај за "callback" На пример, следећи код додаје догађај за клик мишем на img елемент.
$(document).ready(function(){ $('img').click ( function() { // obrađuje klik događaj na bilo koji img element na stranici }); });
Следеће синтаксе су еквивалентне:
$(document).ready(handler) $(handler)
Уланчавање
Свака ЏејКвери команда враћа ЏејКвери објекат, тако да се оне могу уланчавати.
$("div.test").add("p.naslov").addClass("plavi").slideDown("slow"); Овај низ поља представља унију свих div тагова са класним атрибутом test и све тагове p са класним атрибутом naslov, додаје класни атрибут plavi на сваки одговарајући елемент, и анимира њихово појављивање на екран.
Креирање нових ДОМ елемената Осим приступа постојећим ДОМ чворовима, помоћу ЏејКверија је могуће и креирање нових ДОМ елемената, ако ниска прослеђена као аргумент $() изгледа као HTML. На пример, следећи код проналази HTML елемент select са ID-ем marke и додаје елемент option са вредношћу "VAG" и текстом "Volkswagen": $('select#marke').append($('<option />').attr({value:"VAG"}).append("Volkswagen"));
Утилитарне функције
Функције које имају префикс $. су утилитарне функције или функције које утичу на глобална својства и понашања. На пример, следећи код представља функцију која пролази кроз низ test: $.test([1,2,3], function() { console.log(this + 1); }); Функција исписује "2", "3", "4" на конзолу.
Ајакс
Могуће је обавити упите независно од прегледача и потом учитати и манипулисати са удаљеним подацима.
$.ajax({ type: "POST", url: "test.php", data: "name=Pera&location=Beograd" }).done(function(msg) { alert("Podaci su sačuvani: " + msg); }).fail(function(xmlHttpRequest, statusText, errorThrown) { alert( "Vaš zahtev nije uspešno izvršen.\n\n" + "XML Http Zahtev: " + JSON.stringify(xmlHttpRequest) + ",\nStatus: " + statusText + ",\nGreška: " + errorThrown); }); Овај пример шаље податке name=Pera и location=Beograd страници test.php. Када се захтев успешно заврши, кориснику се појављује прозор са одговарајућом поруком (alert). У супротном, кориснику ће бити прослеђени порука да је дошло до грешке, као и статус захтева и тачна грешка.
Додаци за ЏејКвери
Архитектура ЏејКверија дозвољава девелоперима да праве код додатака како би проширили његову функционалност. Постоји на хиљаде ЏејКвери додатака који су доступни на Вебу и покривају широк спектар функција, попут помагача за Ајакс, Веб сервиса, бази података, динамичких листи, XML и XSLT алата, догађаја, контрола колачића и модалних прозора.
Важан извор ЏејКвери додатака је поддомен додатака сајта ЏејКвери пројекта. Додаци овог домена су случајно избрисани у децембру 2011. године у покушају да се сајт очисти од нежељеног садржаја.. Нови сајт ће садржати ГитХуб-хостовано () складиште које ће од девелопера захтевати да поново додају своје додатке и да подлегну новим захтевима за додавање садржаја. Постоје алтернативни погони за претрагу додатака попут jquer.in који користе специјализован приступ, попут излиставања само додатака који испуњавају одређене критеријуме (нпр. Они који имају јавно складиште кодова). ЏејКвери нуди "Центар за обуку" који може помоћи корисницима да разумеју Јаваскрипт и почну да развијају ЏејКвери додатке.
Историја ЏејКвери је оригинално објављен у Јануару 2006 у "Баркампу" () у Њујорку од стране Џон Ресига и био је под ранијим утицајем цссквери библиотеке Дина Едвардса. Тренутно је одржавана од стране програмера који су предвођени Тимијем Вилсоном (са ЏејКвери машином за селектовање, Сизл, који води Ричард Гибсон )
ЏејКвери је имао интересантну историју лиценци.jquery history on softwarefreedom.org Оригинално под CC BY-SA 2.5, био је релиценциран на МИТ лиценцу у 2006.jquery-under-the-mit-license on jquery.org (2006) На крају 2006-те имао је двојно лиценциран под ГПЛ и МИТ лиценцом..license on jquery.org (archived 2010) Како је ово доводило до забуне, у 2012 ФПЛ лиценца је одбачена и данас је само под МИТ лиценцом.jquery-licensing-changes on jquery.org (2012)
Од 2015. ЏејКвери остаје најшире коришћена Јаваскрипт библиотека на Веб-у Према сервису за аналитику Јаваскрипт библиотека, Либскор (), ЏејКвери се користи на преко 65% он првих милион најпопуларнијих сајтова према величини оствареног саобраћаја. Познати сајтови који га користе укључују Твитер (), ЛинкедИн (), Пинтрест (), и иБеј ().http://libscore.com/#jQuery Историја објављивања