JQuery | это... Что такое JQuery? (original) (raw)

jQuery
Jquerylogo.png
Тип JavaScript-библиотека
Разработчик Джон Ресиг
Написана на JavaScript
ОС Кроссплатформенное ПО
Версия 1.4.2 (19 февраля 2010[1])
Лицензия MIT License и GNU GPL
Сайт http://jquery.com/

jQueryбиблиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.

Содержание

История создания

HTML была одной из первых вещей, которую Джон Резиг освоил когда он только начал заниматься программированием. Резиг программировал на QBasic, когда один его знакомый показал ему, как создать веб-страницу (используя Angelfire), а также основы HTML. Отец подарил ему на Рождество две книги по HTML. Именно тогда, когда он только начал программировать на Visual Basic, HTML и веб-дизайн очень заинтересовали его.

Но страсть к JavaScript пришла значительно позже, примерно в 2004 году. Тогда Резиг получал степень в области компьютерных наук и работал на полставки в местной фирме Brand Logic. Он занимался дизайном сайта, в котором создавался пользовательский скроллинг. Джон был разочарован и расстроен, особенно потому, что использовал код других разработчиков, после чего решил серьезно изучить JavaScript. Изучив, пришел к выводам, что JavaScript — это простой, но изящный язык, который является невероятно мощным решением многих задач. В течение ближайших пары лет Д. Резиг создал множество различных JavaScript приложений, прежде чем закончить создание jQuery. Библиотека была представлена общественности на компьютерной конференции «BarCamp» в Нью-Йорке в 2006 году.

Основной целью создания jQuery Резиг видел возможность закодировать многоразовые куски кода, которые позволят упростить JavaScript и использовать их так, чтобы не беспокоиться о кросс-браузерных вопросах. Ночь в начале 2006 года Резиг запомнил на всю жизнь как счастливую: он закончил работу над jQuery и запустил его в Internet Explorer — все заработало. Это был успех!

Возможности

Философия

Точно так же, как CSS отделяет визуализацию от структуры HTML, JQuery отделяет поведение от структуры HTML. Например, вместо прямого указания на обработчик события нажатия кнопки, управление передаётся JQuery, идентифицирующей кнопки и затем преобразовывающий его в обработчик события клика. Такое разделение поведения и структуры также называется принципом ненавязчивого JavaScript.

Библиотека jQuery содержит функционал, полезный для максимально широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, бо́льшая часть которого не востребована. Поэтому была реализована архитектура компактного универсального ядра библиотеки и плагинов[2]. Это позволяет собрать для ресурса именно тот JavaScript-функционал, который на нём был бы востребован.

Использование

jQuery, как правило, включается в веб-страницу как один внешний JavaScript-файл:

Вся работа с jQuery ведётся с помощью функции $. Если на сайте применяются другие JavaScript библиотеки, где $ может использоваться для своих нужд, то можно использовать её синоним — jQuery. Второй способ считается более правильным, а чтобы код не получался слишком громоздким можно писать его следующим образом:

jQuery(function($) { // Тут код скрипта, где в $ будет jQuery })

Работу с jQuery можно разделить на 2 типа:

Типичный пример манипуляции сразу несколькими узлами DOM заключается в вызове $ функции со строкой селектора CSS, что возвращает объект jQuery, содержащий некоторое количество элементов HTML-страницы. Эти элементы затем обрабатываются методами jQuery. Например,

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

находит все элементы

с классом test, а также все элементы

с классом quote, и затем добавляет им всем класс blue и визуально плавно спускает вниз.

Методы, начинающиеся с $., удобно применять для обработки глобальных объектов. Например:

$.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().

Пример добавления к элементу обработчика события click с помощью jQuery:

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

В данном случае при нажатии на элемент происходит вызов alert("Hello world!").

История версий

Версия Ссылки Дата релиза Существенные изменения
1.0 30 июня 2006 Первая альфа-версия
1.0 сж. 26 августа 2006 Первая стабильная версия
1.0.1 сж., несж. 31 августа 2006 Первая версия с исправлениями ошибок
1.0.2 сж., несж. 9 октября 2006 Изменение интерфейса прикладного программирования
1.0.3 сж., несж. 27 октября 2006
1.0.4 сж., несж. 12 декабря 2006
1.1a 8 января 2007 Альфа-версия
1.1b 11 января 2007 Бета-версия
1.1 сж., несж. 14 января 2007
1.1.1 сж., несж. 22 января 2007
1.1.2 сж., несж. 27 февраля 2007
1.1.3a 20 мая 2007 Альфа-версия
1.1.3 сж., несж. 1 июля 2007 Более чем в 8 раз увеличено быстродействие при размере в 20 кб[3]
1.1.3.1 сж., несж. 5 июля 2007
1.1.4 сж., несж. 24 августа 2007
1.2 мин., сж., несж. 10 сентября 2007
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
1.3 мин., несж., в.док. 14 января 2009 метод live()
1.3.1 мин., несж., в.док. 21 января 2009
1.3.2 мин., несж., в.док. 20 февраля 2009
1.4 мин., несж. 14 января 2010 Оптимизация обработки событий: реализация .closest(Array)[4]. Быстродействие основных функций увеличено более чем в 3 раза[5]
1.4.1 мин., несж. 25 января 2010 Переименованы события потери и получения фокуса, .die() удаляет обработчики событий, навешенные с помощью .live()[6], jQuery.error() генерирует исключение, .height() и .width() возвращают высоту и ширину элемента, вычисленную браузером, для первого элемента из найденных, jQuery.parseJSON() преобразует строку в формате JSON в объект[7].
1.4.2 мин., несж. 19 февраля 2010 Добавлены новые методы .delegate() и .undelegate()[8], Улучшения производительности вызова .bind() и .unbind(), производительность .empty(), .remove() и .html(), также улучшена производительность добавления единичного DOM узла и вызова $("body")[9].
Легенда
мин. — минифицировано сж. — сжато несж. — не сжато в.док — документация Visual Studio

Интеграция с другими продуктами

28 сентября 2008 года на официальном блоге JQuery[10] сообщили о том, что компании Microsoft и Nokia собираются сотрудничать с группой разработчиков. Компания Microsoft собирается интегрировать в свой продукт ASP.NET листинги кода и примеры JQuery, а компания Nokia собирается интегрировать JQuery для своих мобильных виджетов.

Команда разработчиков

Работа над библиотекой разделена на 5 групп:

Команды Описание Участники
Разработка Несут ответственность за содержание библиотеки (разработка, тестирование, документирование и т. д.). Джон Ресиг Brandon Aaron Ariel Flesler Jörn Zaefferer
Пиар Ответственные за связь с общественностью. Rey Bango Karl Swedberg Cody Lindley
jQuery UI Разработка и поддержка jQuery UI.[11] Paul Bakaus Richard D. Worth Scott González Todd Parker Otros[12]
Plugins Люди, ответственные за разработку плагинов Yehuda Katz Klaus Hartl Mike Alsup
Web дизайнеры Ответственные за дизайн и поддержку сайта jQuery.[13] Scott Jehl Mike Hostetler

См. также

Примечания

  1. Resig, John jQuery 1.4.2 Released (англ.) (2010-02-19). Проверено 20 февраля 2010.
  2. Бер Бибо, Иегуда Кац. 1.3.5 Расширение jQuery // jQuery. Подробное руководство по продвинутому JavaScript = jQuery in Action. — Спб.: Символ-Плюс, 2009. — 384 с. — 2000 экз. — ISBN 978-5-93286-135-6, 5-93286-135-5, 1-933988-35-5
  3. Запись в блоге jQuery о релизе 1.1.3
  4. Resig, John .closest(Array) in jQuery 1.4 (англ.) (2009-12-18). Проверено 15 января 2010.
  5. Об изменениях в jQuery 1.4 по сравнению с предыдущей версией (рус.). Проверено 15 января 2010.
  6. Вышел jQuery 1.4.1 (рус.). habrahabr.ru (2010-01-26). Проверено 26 января 2010.
  7. Version 1.4.1 (англ.). jquery.com (2010-01-26). Проверено 26 января 2010.
  8. Version 1.4.2. jquery.com (2010-02-19). Проверено 20 февраля 2010.
  9. jQuery 1.4.2 Released (англ.). jquery.com (2010-02-19). Проверено 20 февраля 2010.
  10. Официальный блог jQuery.
  11. Официальная страница jQuery UI. Проверено 3 июня 2009.
  12. Полный список контрибьюторов jQuery UI. Проверено 3 июня 2009.
  13. Официальная страница jQuery. Проверено 3 июня 2009.

Ссылки

Веб-фреймворки
ASP.NET DotNetNukeASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache CocoonApache Struts • AppFuse • Aranea frameworkEclipseFacelets • Flexive • FreeMarker • Google Web ToolkitGrailsHamlets • ItsNat • Jakarta VelocityJavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale Framework • SmartClientSpring FrameworkStripesTapestry • ThinWire • Vaadin • WebWork • WebObjects • WebWork • Wicket Framework • ZK Framework
JavaScript AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JSjQueryjMaki • Microsoft AJAX Library • MochiKit • MooToolsPrototype JavaScript Framework • qooxdoo • Rialto Toolkit • Rico • script.aculo.usSmartClientSpry frameworkYahoo! UI Library
Perl CatalystInterchange • Titanium • Maypole • Mason
PHP Acode Framework • Akelos PHP Framework • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY Framework • Drupal • FUSE • Horde • Kohana • Livestreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull Framework • Solar Framework • SymfonyZend Framework • Zoop Framework • Joomla
Python CherryPyDjango • Karrigell • Nevow • Porcupine • Pylons • Spyce • TurboGears • TwistedWeb • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • MerbRuby on RailsSinatra • Padrino
Прочиеязыки Alpha Five • Fusebox (ColdFusion и PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)
Инструментарии виджетов
Низко-уровневые Macintosh Toolbox/Carbon · Windows API · Intrinsics · Intuition · Xlib
Высоко-уровневые Amiga OS BOOPSI • Magic User Interface • Zune • ReAction GUI Mac OS и Mac OS X Cocoa • MacApp • MacZoop • PowerPlant Microsoft Windows Microsoft Foundation ClassesWindows Template Library • SmartWin++ • Object Windows Library • Visual Component LibraryWindows FormsWindows Presentation Foundation Unix, под X XawMotifLessTif • InterViews Кросс-платфор-менные На основе Flash Adobe FlexGnash • SWF2EXE Software На основе XML,AJAX или SVG GladeXML • XAML • XML User Interface • XUL • CougarXML • Rialto Toolkit • Dojo ToolkitjQueryscript.aculo.us • Echo • qooxdoo • MooToolsGoogle Web ToolkitYahoo! UI LibraryExtJS На основе Java Abstract Window Toolkit • SwingSWT На основеC или C++ Agar • CEGUI • Component Library for Cross Platform • dlib C++ Library • FLTKFOX toolkit • OpenGL User Interface Library • GTK+ • IUP • JuceQtTk • TnFOX • Visual Component Framework • wxWidgets • YAAF • XForms • XVT На основе Pascal IP Pascal • Lazarus • fpGUI