jQuery

jQuery
jQuery
Jquerylogo.png
Тип

JavaScript-библиотека

Разработчик

Джон Резиг

Написана на

JavaScript

Операционная система

Кроссплатформенное ПО

Последняя версия

1.8.3 (13 ноября 2012[1])

Лицензия

Лицензия MIT

Сайт

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. Основной целью создания jQuery Резиг видел возможность закодировать многоразовые куски кода, которые позволят упростить JavaScript и использовать их так, чтобы не беспокоиться о кросс-браузерных вопросах. Библиотека была представлена общественности на компьютерной конференции «BarCamp» в Нью-Йорке в 2006 году.

Возможности

  • Движок кроссбраузерных CSS-селекторов Sizzle[2], выделившийся в отдельный проект;
  • Переход по дереву DOM, включая поддержку XPath как плагина;
  • События;
  • Визуальные эффекты;
  • AJAX-дополнения;
  • JavaScript-плагины.

Философия

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

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

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

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

<head>
    <script type="text/javascript" src="путь/к/jQuery.js"></script>
</head>

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

jQuery(function($) {
  // здесь код скрипта, где в $ будет находиться объект, предоставляющий доступ к функциям jQuery
})

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

  • Получение jQuery-объекта с помощью функции $(). Например, передав в неё CSS-селектор, можно получить jQuery-объект всех элементов HTML, попадающих под критерий и далее работать с ними с помощью различных методов jQuery-объекта. В случае, если метод не должен возвращать какого-либо значения, он возвращает ссылку на jQuery объект, что позволяет вести цепочку вызовов методов согласно концепции текучего интерфейса.
  • Вызов глобальных методов у объекта $, например, удобных итераторов по массиву.

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

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

находит все элементы 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().

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

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

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

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

Версия Ссылки Дата релиза Существенные изменения
1.0 30 июня 2006 Первая альфа-версия
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 Альфа-версия
1.1b 11 января 2007 Бета-версия
1.1 сж., несж. 14 января 2007 В этой версии была произведена существенная модернизация прикладного программного интерфейса (API). Многие редко используемые методы были объединены, что привело к уменьшению числа методов, которые необходимо изучать и документировать.
1.1.1 сж., несж. 22 января 2007
1.1.2 сж., несж. 27 февраля 2007
1.1.3a 20 мая 2007 Альфа-версия
1.1.3 сж., несж. 1 июля 2007 В этой версии была существенно повышена производительность механизма селекторов jQuery. Начиная с этой версии, производительность библиотеки jQuery стала сопоставимой с производительностью родственных библиотек JavaScript, таких как Prototype, Mootools и Dojo. Более чем в 8 раз увеличено быстродействие при размере в 20 кб[4]
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, созданного Брендоном Аароном (Brandon Aaron).
1.3 мин., несж., в.док. 14 января 2009 Значительная модернизация механизма селекторов (Sizzle) обеспечила гигантский прирост производительности библиотеки. Официально было объявлено о поддержке делегирования событий. Появился метод live().
1.3.1 мин., несж., в.док. 21 января 2009
1.3.2 мин., несж., в.док. 20 февраля 2009
1.4 мин., несж. 14 января 2010 Оптимизация обработки событий: реализация .closest(Array)[5]. Быстродействие основных функций увеличено более чем в 3 раза[6]
1.4.1 мин., несж. 25 января 2010 Переименованы события потери и получения фокуса, .die() удаляет обработчики событий, навешенные с помощью .live()[7], jQuery.error() генерирует исключение, .height() и .width() возвращают высоту и ширину элемента, вычисленную браузером, для первого элемента из найденных, jQuery.parseJSON() преобразует строку в формате JSON в объект[8].
1.4.2 мин., несж. 19 февраля 2010 Добавлены новые методы .delegate() и .undelegate()[9], Улучшения производительности вызова .bind() и .unbind(), производительность .empty(), .remove() и .html(), также улучшена производительность добавления единичного DOM узла и вызова $("body")[10].
1.4.3 мин., несж. 16 октября 2010 Многочисленные изменения[11].
1.4.4 мин., несж. 11 ноября 2010 Добавлен .fadeToggle()[12].
1.5 мин., несж. 31 января 2011 Переписан модуль AJAX, добавлена возможность создания отложенных (deferred) объектов, метод .sub() для клонирования jQuery, большая скорость выполнения методов .children(), .prev() и .next().[13]
1.5.1 мин., несж. 24 февраля 2011 Исправление ошибок. Добавлена поддержка IE9[14]
1.5.2 мин., несж. 24 февраля 2011 Исправление ошибок.[15]
1.6 мин., несж. 24 февраля 2011
  • Исправление 4-х ошибок;
  • Увеличена производительность метода data();
  • Изменения, «ломающие» совместимость (изменены методы `data()`, `attr()`, `prop()`)[16]
1.6.1 мин., несж. 12 мая 2011 Исправления ошибок.[17]
1.6.2 мин., несж. 30 июня 2011 [18]
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 Исправления ошибок.[19]
1.9.0 начало 2013 Удаление устаревших интерфейсов и чистка кода.[20]
2.0.0 начало 2013 Прекращение поддержки IE 6—8 для увеличения производительности и уменьшения размера файлов.[20]
Легенда
мин. — минифицировано сж. — сжато несж. — не сжато в.док — документация Visual Studio

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

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

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

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

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

См. также

Примечания

  1. Resig, John jQuery 1.8.3 Released  (англ.) (20 September 2012). Архивировано из первоисточника 19 октября 2012. Проверено 13 ноября 2012.
  2. Sizzle — движок кроссбраузерных CSS-селекторов
  3. Бер Бибо, Иегуда Кац. 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
  4. Запись в блоге jQuery о релизе 1.1.3
  5. Resig, John .closest(Array) in jQuery 1.4  (англ.) (18 December 2009). Архивировано из первоисточника 29 февраля 2012. Проверено 15 января 2010.
  6. Об изменениях в jQuery 1.4 по сравнению с предыдущей версией  (рус.). Архивировано из первоисточника 29 февраля 2012. Проверено 15 января 2010.
  7. Вышел jQuery 1.4.1  (рус.). habrahabr.ru (26 января 2010). Архивировано из первоисточника 29 февраля 2012. Проверено 26 января 2010.
  8. Version 1.4.1  (англ.). jquery.com (26 January 2010). Архивировано из первоисточника 29 февраля 2012. Проверено 26 января 2010.
  9. Version 1.4.2. jquery.com (19 февраля 2010). Архивировано из первоисточника 29 февраля 2012. Проверено 20 февраля 2010.
  10. jQuery 1.4.2 Released  (англ.). jquery.com (19 February 2010). Проверено 20 февраля 2010.
  11. Version 1.4.3. jquery.com (16 октября 2010). Архивировано из первоисточника 29 февраля 2012. Проверено 14 ноября 2010.
  12. Version 1.4.4. jquery.com (11 ноября 2010). Архивировано из первоисточника 29 февраля 2012. Проверено 14 ноября 2010.
  13. jQuery 1.5 Released. jquery.com (8 февраля 2011). Архивировано из первоисточника 26 июня 2012. Проверено 31 января 2011.
  14. jQuery 1.5.1 Released. jquery.com (8 февраля 2011). Архивировано из первоисточника 6 августа 2012. Проверено 24 февраля 2011.
  15. jQuery 1.5.2 Released. jquery.com (31 марта 2011). Архивировано из первоисточника 6 августа 2012. Проверено 31 марта 2011.
  16. jQuery 1.6 Released. jquery.com (3 мая 2011). Архивировано из первоисточника 29 февраля 2012. Проверено 3 мая 2011.
  17. Resig, John JQuery 1.6.1 Released  (англ.) (12 May 2010). Архивировано из первоисточника 7 августа 2012. Проверено 4 июля 2011.
  18. Resig, John Jquery 1.6.2 Released  (англ.) (30 June 2010). Архивировано из первоисточника 7 августа 2012. Проверено 4 июля 2011.
  19. jQuery 1.8.3 Released. jquery.com (3 мая 2011). Архивировано из первоисточника 20 ноября 2012. Проверено 17 ноября 2012.
  20. 1 2 jQuery Core: Version 1.9 and beyond. jquery.com (28 июня 2012). Архивировано из первоисточника 20 ноября 2012. Проверено 17 ноября 2012.
  21. Официальный блог jQuery. Архивировано из первоисточника 7 августа 2012.
  22. Официальная страница jQuery UI. Архивировано из первоисточника 29 февраля 2012. Проверено 3 июня 2009.
  23. Полный список контрибьюторов jQuery UI. Архивировано из первоисточника 29 февраля 2012. Проверено 3 июня 2009.
  24. Официальная страница jQuery. Архивировано из первоисточника 29 февраля 2012. Проверено 3 июня 2009.

Ссылки

Литература

  • Джейсон Ленгсторф PHP и jQuery для профессионалов = Pro PHP and jQuery. — М.: «Вильямс», 2010. — С. 352. — ISBN 978-5-8459-1693-8
  • Прохоренок Николай Анатольевич jQuery. Новый стиль программирования на JavaScript. — М.: «Вильямс», 2010. — С. 272. — ISBN 978-5-8459-1603-7
  • Самков Г. jQuery. Сборник рецептов. — СПб.: БХВ-Петербург, 2010. — С. 416. — ISBN 978-5-9775-0495-9

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "jQuery" в других словарях:

  • JQuery — Тип JavaScript библиотека Разработчик Джон Ресиг Написана на JavaScript …   Википедия

  • jQuery — Entwickler John Resig Aktuelle Version 1.7 (3. November 2011) Betriebssystem …   Deutsch Wikipedia

  • JQuery — Entwickler: John Resig Aktuelle Version: 1.3.2 (2009 02 20) Betriebssystem: plattformunabhängig Programmiersprache: JavaScript …   Deutsch Wikipedia

  • JQuery — Saltar a navegación, búsqueda jQuery Desarrollador jQuery Team http://jquery.com/ Información general …   Wikipedia Español

  • jQuery UI — Desarrollador jQuery UI Team http://jqueryui.com/ Información general Última versión estable 1.8.16 …   Wikipedia Español

  • JQuery UI — Saltar a navegación, búsqueda jQuery UI Desarrollador jQuery UI Team http://jqueryui.com/ Información general …   Wikipedia Español

  • jQuery — Desarrollador Equipo de desarrollo http://jquery.com/ Información general Diseñador …   Wikipedia Español

  • JQuery — Développeur John Resig Dernière version 1.3.2 (le 20 …   Wikipédia en Français

  • Jquery — Développeur John Resig Dernière version 1.3.2 (le 20 …   Wikipédia en Français

  • jQuery — Développeur John Resig Dernière version 1.7 (3 novembre  …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»