JQuery
From Wikipedia, the free encyclopedia
Remove ads
ЏејКвери (енгл. ) је вишеплатмфорска Јаваскрипт (енгл. ) библиотека дизајнирана да поједностави скриптовање са корисничке стране језика HTML. [1] ЏејКвери је најпопуларнија Јаваскрипт библиотека у употреби данас коју користи 65% од најпосећенијих 10 милиона сајтова на вебу.[2][3][4] ЏејКвери је слободан и софтвер отвореног изворног кода лиценциран под МИТ лиценцом.
![]() | Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |
Синтакса ЏејКвери библиотеке је дизајнирана да поједностави навигацију ка документу, селектовање ДОМ елемената, прављење анимација, обрађивање догађаја и развој Ајакс (енгл. ) апликација. ЏејКвери такође пружа могућност програмерима да направе додатке преко Јаваскрипт билбиотеке. Ово омогућава програмерима да направе апстракције за интеракцију ниског нивоа и анимацију, напредне ефекте и виџете високог нивоа који могу имати теме. Модуларни приступ ЏејКвери библиотеци омогућава стварање моћних динамичких веб страна и веб апликација.
Комплет основних могућности ЏејКвери библиотеке — селектовање ДОМ (енгл. ) елемента, промена и манипулација омогућена машином за селектовање (названа Сизл (енгл. ) из верзије 1.3) креирала је нови ”стил програмирања”, повезујући алгоритме и структуре ДОМ података. Овај стил је утицао на архитектуру других Јаваскрипт окружења YUI v3 и Доџо (енгл. ), касније поспешујући креирање старндардног АПИ-ја за селектовање.[5]
Мајкрософт (енгл. ) и Нокија (енгл. ) су повезали ЏејКвери на своје платформе.[6] Мајкрософт га укључује у Вижуал Студио (енгл. )[7] за употребу у АСП. НЕТ АЈАКС и АСП. НЕТ MVC окружењима које је конструисао Мајкрософт, док га је Нокија интегрисала у веб платформу која показује развој виџета у реалном времену.[8] ЏејКвери је употребљаван у Медиа Викију од верзије 1.16.[9]
Remove ads
Преглед
ЏејКвери је, у својој сржи, ДОМ за контролу над библиотекама. ДОМ је дрволика репрезентација свих елемената веб стране и ЏејКвери поједностављује синтаксу за проналажење, селектовање и манипулацију тих ДОМ елемената. На пример, ЏејКвери се може користити за проналажење елемената у документу са одређеним својствима (нпр. сви елементи са h1 етикетом енгл. ), мењање једног или више његових својства (нпр. боја, видљивост), или правити га таквог да реагује на догађај (нпр. клик мишем).
ЏејКвери такође нуди парадигму за руковођење догађајима који превазилазе основне ДОМ могућности селекције и манипулације елементом. Дефинисање функција за доделу догађаја и опозивање догађаја раде се у једном кораку и на једном месту у коду. ЏејКвери такође циља ка укључивању других изузетно коришћених Јаваскрипт функционалности (нпр. анимације приликом манипулације над CSS својствима).
Предности при коришћењу Џејкверија:
- Стимулише раздвајање Јаваскрипте и HTML-а: ЏејКвери библиотека нуди једноставну синтаксу за додавање руководиоца догађајем ДОМ-у при коришћењу Јаваскрипте, што је боље од додавања атрибута HTML догађају за позивање Јаваскрипт функција. Према томе, подржава веб програмере да потпуно раздвоје Јаваскрипт код од HTML ознака.
- Све је кратко и јасно: ЏејКвери промовише кратак и јасан код са карактеристикама попут мођућег уланчавања функција и кратких и описних имена функција.
- Елиминише некомпатабилности при писању кода за различите претраживаче: Јаваскрипт погон различитих претраживача се незнатно разликује па Јаваскрипт код који ради на једном претраживачу можда неће радити на неком другом. Попут других Јаваскрипт група алата, ЏејКвери контролише све неконзистентности међу различитим прегледачима и нуди конзистентан интерфејс који ради на свим прегледачима.
- Лако се надограђује: Нови догађаји, елементи и методе могу се једноставно додати и потом поново искористити у облику додатака.
Remove ads
Особине
ЏејКвери укљућује следеће особине:
- Селектовање ДОМ елемената коришћењем више-претраживаћком библиотеком отвореног кода селекторске машине, као нуспроизвод ЏејКвери пројекта[10]
- Манипулација ДОМ елементима на основу CSS селектора који користе имена и особине елемената ако што су
id
иclass
, као критеријуми за селекцију елемената у ДОМ - Догађаји
- Ефекти и анимације
- Ajaks
- Одложени и Обећани објекти за контролу несинхроне обраде
- Парсиранје JSON-а
- Прошириванје промоћу додатака
- Алати, као што је детектовање особина
- Методе за детектовање сагласности које су изворно доступне у модерним претраживачима, али постоји потреба за "fall backs"-ом за старије, као
inArray()
иeach()
- Више претраживачка (не треба их помешати са крос претраживачима) помоћ
Подршка за прегледачима
Верзија 1.х као и верзија 2.х ЏејКвери библиотеке подржавају тренутне 1 верзије (што значи тенутну стабилну верзију прегледачима и верзије које су јој претходиле) Фајерфокса (енгл. ), Хрома (енгл. ), Сафарија (енгл. ) и Опере (енгл. ). Верзија 1.х такође подржава Интернет Експлорер 6 (енгл. ) или новије верзије. Међутим верзија 2.х ЏејКвери библиотеке не подржава Интернет експлорер верзије 6 до 8 (који представљају само 2% укупне употребе веб прегледачима)[11] и подржава само верзију 9 и новије верзије.[12]
Remove ads
Коришћење
Укључење библиотеке
ЏејКвери библиотека је Јаваскрипт документ који садржи догађаје, ефекте и Ајакс функције. Може се укључити у веб страницу линковањем на локалну копију или на једну од многих копија које су доступне на серверима.
Повезивање са локалном копијом:
<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
као замену за $
без губљења функционалности.[13]
Типичан скелет
Типично коришћење ЏејКвери библиотеке је креирање догађаја помоћу методе .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
). У супротном, кориснику ће бити прослеђени порука да је дошло до грешке, као и статус захтева и тачна грешка.
Remove ads
Додаци за ЏејКвери
Архитектура ЏејКверија дозвољава девелоперима да праве код додатака како би проширили његову функционалност. Постоји на хиљаде ЏејКвери додатака који су доступни на Вебу и покривају широк спектар функција, попут помагача за Ајакс, Веб сервиса, бази података, динамичких листи, XML и XSLT алата, догађаја, контрола колачића и модалних прозора.[14]
Важан извор ЏејКвери додатака је поддомен додатака сајта ЏејКвери пројекта.[14] Додаци овог домена су случајно избрисани у децембру 2011. године у покушају да се сајт очисти од нежељеног садржаја..[15] Нови сајт ће садржати ГитХуб-хостовано (енгл. ) складиште које ће од девелопера захтевати да поново додају своје додатке и да подлегну новим захтевима за додавање садржаја.[16] Постоје алтернативни погони за претрагу додатака[17][18] попут jquer.in
који користе специјализован приступ, попут излиставања само додатака који испуњавају одређене критеријуме (нпр. Они који имају јавно складиште кодова). ЏејКвери нуди "Центар за обуку" који може помоћи корисницима да разумеју Јаваскрипт и почну да развијају ЏејКвери додатке.[19]
Remove ads
Историја
ЏејКвери је оригинално објављен у Јануару 2006 у "Баркампу" (енгл. ) у Њујорку од стране Џон Ресига и био је под ранијим утицајем цссквери библиотеке Дина Едвардса. [20] Тренутно је одржавана од стране програмера који су предвођени Тимијем Вилсоном (са ЏејКвери машином за селектовање, Сизл, који води Ричард Гибсон )
ЏејКвери је имао интересантну историју лиценци.[21] Оригинално под CC BY-SA 2.5, био је релиценциран на МИТ лиценцу у 2006.[22] На крају 2006-те имао је двојно лиценциран под ГПЛ и МИТ лиценцом..[23] Како је ово доводило до забуне, у 2012 ФПЛ лиецнца је одбачена и данас је само под МИТ лиценцом.[24]
Од 2015. ЏејКвери остаје најшире коришћена Јаваскрипт библиотека на Веб-у Према сервису за аналитику Јаваскрипт библиотека, Либскор (енгл. ), ЏејКвери се користи на преко 65% он првих милион најпопуларнијих сајтова према величини оствареног саобраћаја.[4] Познати сајтови који га користе укључују Твитер (енгл. ), ЛинкедИн (енгл. ), Пинтрест (енгл. ), и иБеј (енгл. ).[25]
Историја објављивања
Remove ads
Оквир за тестирање
КјуЈунит (енгл. ) је фрејмворк за аутоматизовано тестирање коришћен унутар ЏејКвери пројекта. ЏејКвери тим га је развио као библиоткеку за интегрисано тестирање јединица и користи се за тестирање кодова и додатака, али може тестирати генерички Јаваскрипт код, укључујучи код Јаваскрипта на серверској страни.[27]
Од 2011. године, ЏејКвери тим за тестирање користи КјуЈунит са ТестСварм (енгл. ) оквиром да тестира сваку нову верзију ЏејКвери кода.[28]
Remove ads
Види још
- Компарација Јаваскрипт оквира
- ЏејКвери за мобилни
Референце
Литература
Додатна литература
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads