Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |
ЏејКвери (енгл. jQuery) је вишеплатмфорска Јаваскрипт (енгл. JavaScript) библиотека дизајнирана да поједностави скриптовање са корисничке стране језика HTML. ЏејКвери је најпопуларнија Јаваскрипт библиотека у употреби данас коју користи 65% од најпосећенијих 10 милиона сајтова на вебу. ЏејКвери је слободан и софтвер отвореног изворног кода лиценциран под МИТ лиценцом.
Синтакса ЏејКвери библиотеке је дизајнирана да поједностави навигацију ка документу, селектовање ДОМ елемената, прављење анимација, обрађивање догађаја и развој Ајакс (енгл. Ajax) апликација. ЏејКвери такође пружа могућност програмерима да направе додатке преко Јаваскрипт билбиотеке. Ово омогућава програмерима да направе апстракције за интеракцију ниског нивоа и анимацију, напредне ефекте и виџете високог нивоа који могу имати теме. Модуларни приступ ЏејКвери библиотеци омогућава стварање моћних динамичких веб страна и веб апликација.
Комплет основних могућности ЏејКвери библиотеке — селектовање ДОМ (енгл. DOM) елемента, промена и манипулација омогућена машином за селектовање (названа Сизл (енгл. Sizzle) из верзије 1.3) креирала је нови ”стил програмирања”, повезујући алгоритме и структуре ДОМ података. Овај стил је утицао на архитектуру других Јаваскрипт окружења YUI v3 и Доџо (енгл. Dojo), касније поспешујући креирање старндардног АПИ-ја за селектовање.
Мајкрософт (енгл. Microsoft) и Нокија (енгл. Nokia) су повезали ЏејКвери на своје платформе. Мајкрософт га укључује у Вижуал Студио (енгл. Visual Studio) за употребу у АСП. НЕТ АЈАКС и АСП. НЕТ MVC окружењима које је конструисао Мајкрософт, док га је Нокија интегрисала у веб платформу која показује развој виџета у реалном времену. ЏејКвери је употребљаван у Медиа Викију од верзије 1.16.
ЏејКвери је, у својој сржи, ДОМ за контролу над библиотекама. ДОМ је дрволика репрезентација свих елемената веб стране и ЏејКвери поједностављује синтаксу за проналажење, селектовање и манипулацију тих ДОМ елемената. На пример, ЏејКвери се може користити за проналажење елемената у документу са одређеним својствима (нпр. сви елементи са h1 етикетом енгл. tag), мењање једног или више његових својства (нпр. боја, видљивост), или правити га таквог да реагује на догађај (нпр. клик мишем).
ЏејКвери такође нуди парадигму за руковођење догађајима који превазилазе основне ДОМ могућности селекције и манипулације елементом. Дефинисање функција за доделу догађаја и опозивање догађаја раде се у једном кораку и на једном месту у коду. ЏејКвери такође циља ка укључивању других изузетно коришћених Јаваскрипт функционалности (нпр. анимације приликом манипулације над CSS својствима).
Предности при коришћењу Џејкверија:
ЏејКвери укљућује следеће особине:
id
и class
, као критеријуми за селекцију елемената у ДОМinArray()
и each()
Верзија 1.х као и верзија 2.х ЏејКвери библиотеке подржавају тренутне 1 верзије (што значи тенутну стабилну верзију прегледачима и верзије које су јој претходиле) Фајерфокса (енгл. Firefox), Хрома (енгл. Chrome), Сафарија (енгл. Safari) и Опере (енгл. Opera). Верзија 1.х такође подржава Интернет Експлорер 6 (енгл. Internet Explorer 6) или новије верзије. Међутим верзија 2.х ЏејКвери библиотеке не подржава Интернет експлорер верзије 6 до 8 (који представљају само 2% укупне употребе веб прегледачима) и подржава само верзију 9 и новије верзије.
ЏејКвери библиотека је Јаваскрипт документ који садржи догађаје, ефекте и Ајакс функције. Може се укључити у веб страницу линковањем на локалну копију или на једну од многих копија које су доступне на серверима.
Повезивање са локалном копијом:
<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(, 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. године у покушају да се сајт очисти од нежељеног садржаја.. Нови сајт ће садржати ГитХуб-хостовано (енгл. GitHub) складиште које ће од девелопера захтевати да поново додају своје додатке и да подлегну новим захтевима за додавање садржаја. Постоје алтернативни погони за претрагу додатака попут jquer.in
који користе специјализован приступ, попут излиставања само додатака који испуњавају одређене критеријуме (нпр. Они који имају јавно складиште кодова). ЏејКвери нуди "Центар за обуку" који може помоћи корисницима да разумеју Јаваскрипт и почну да развијају ЏејКвери додатке.
ЏејКвери је оригинално објављен у Јануару 2006 у "Баркампу" (енгл. BarCamp) у Њујорку од стране Џон Ресига и био је под ранијим утицајем цссквери библиотеке Дина Едвардса. Тренутно је одржавана од стране програмера који су предвођени Тимијем Вилсоном (са ЏејКвери машином за селектовање, Сизл, који води Ричард Гибсон )
ЏејКвери је имао интересантну историју лиценци. Оригинално под CC BY-SA 2.5, био је релиценциран на МИТ лиценцу у 2006. На крају 2006-те имао је двојно лиценциран под ГПЛ и МИТ лиценцом.. Како је ово доводило до забуне, у 2012 ФПЛ лиецнца је одбачена и данас је само под МИТ лиценцом.
Од 2015. ЏејКвери остаје најшире коришћена Јаваскрипт библиотека на Веб-у Према сервису за аналитику Јаваскрипт библиотека, Либскор (енгл. Libscore), ЏејКвери се користи на преко 65% он првих милион најпопуларнијих сајтова према величини оствареног саобраћаја. Познати сајтови који га користе укључују Твитер (енгл. Twitter), ЛинкедИн (енгл. LinkedIn), Пинтрест (енгл. Pinterest), и иБеј (енгл. eBay).
Број верзије | Датум објављивања | Последња верзија | Величина продукта (KB) | Додатне напомене |
---|---|---|---|---|
1.0 | 26. август 2006. | Прва стабилна верзија | ||
1.1 | 14. јануар 2007. | |||
1.2 | 10. септембар 2007. | |||
1.3 | 14. јануар 2009. | 55.9 | Селекторска машина Sizzle додата у језгро | |
1.4 | 14. јануар 2010. | |||
1.5 | 31. јануар 2011. | Управљање одложеним повратним позивима, предефинисан модул АЈАКС | ||
1.6 | 3. мај 2011. | Значајно побољшање перформанси attr() и val() функција | ||
1.7 | 3. новембар 2011. | Нови догађаји.on() и .off(), стари остају подржани. | ||
1.8 | 9. август 2012. | 91.4 | Селекторска машина Sizzle преправљена, унапређене анимације и $(html, props) флексибилност. | |
1.9 | 15. јануар 2013. | 1.9.1 | Уклањање застарелог интерфејса и чишћење кода | |
1.10 | 24. мај 2013. | 1.10.2 (3. јул 2013. | )Припојене исправке грешака и разлике пријављених из 1,9 и 2,0 бета циклуса | |
1.11 | 24. јануар 2014. | 1.11.3 (28. април 2015. | )95.9 | |
1.12 | 8. јануар 2016. | 1.12.3 (5. април 2016. | )95 | |
2.0 | 18. април 2013. | 2.0.3 (3. јул 2013. | )81.1 | Престанак подржавања IE 6–8 за побољшање перформанси и смањивање величине датотека |
2.1 | 24. јануар 2014. | 2.1.4 (28. април 2015. | )82.4 | |
2.2 | 8. јануар 2016. | 2.2.4 (20. мај 2016. | )85.6 |
КјуЈунит (енгл. QUnit) је фрејмворк за аутоматизовано тестирање коришћен унутар ЏејКвери пројекта. ЏејКвери тим га је развио као библиоткеку за интегрисано тестирање јединица и користи се за тестирање кодова и додатака, али може тестирати генерички Јаваскрипт код, укључујучи код Јаваскрипта на серверској страни.
Од 2011. године, ЏејКвери тим за тестирање користи КјуЈунит са ТестСварм (енгл. TestSwarm) оквиром да тестира сваку нову верзију ЏејКвери кода.