jQuery

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 16 июля 2025 года; проверки требуют3 правки.
Перейти к навигацииПерейти к поиску

jQuery
Логотип программы jQuery
ТипJavaScript-библиотека
РазработчикДжон Резиг
Написана наJavaScript[2]
Операционная системакроссплатформенность
Дата выпускаянварь2006
Последняя версия
Репозиторийgithub.com/jquery/jquery
Лицензиялицензия MIT
Сайтjquery.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

jQuery ([dʒeɪ kwɪəri]) —набор функций JavaScript, фокусирующийся на взаимодействииJavaScript иHTML. Библиотека jQuery помогает легко получать доступ к любому элементуDOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобныйAPI для работы сAJAX. Разработка jQuery ведётся командой добровольцев на пожертвования[3].

Содержание

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

[править |править код]

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

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

Возможности

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

Философия

[править |править код]

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

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

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

[править |править код]

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

<head><!-- 1-й метод — с локального сервера --><scriptsrc="jquery-3.5.1.min.js"></script><!-- 2-й метод — с сервера jquery.com или другого CDN --><scriptsrc="https://code.jquery.com/jquery-3.5.1.min.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!").

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

[править |править код]

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

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

[править |править код]

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

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

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

[править |править код]
ВерсияПервая версияПоследнее обновлениеМинифицированный размер (КБ)Дополнительные сведения
1.0август 26, 2006 (2006-08-26)Первый стабильный выпуск
1.1январь 14, 2007 (2007-01-14)
1.2сентябрь 10, 2007 (2007-09-10)1.2.654.5
1.3январь 14, 2009 (2009-01-14)1.3.255.9В ядро добавлен движок селекторов Sizzle
1.4январь 14, 2010 (2010-01-14)1.4.476.7
1.5январь 31, 2011 (2011-01-31)1.5.283.9Добавлены отложенные вызовы (Deferred), переписан модуль Ajax
1.6май 3, 2011 (2011-05-03)1.6.4 (сентябрь 12, 2011 (2011-09-12))[10]89.5Существенно повышена производительность функцийattr() иval()
1.7ноябрь 3, 2011 (2011-11-03)1.7.2 (март 21, 2012 (2012-03-21))[11]92.6Новые API для событий:.on() и.off(), старые ещё поддерживаются
1.8август 9, 2012 (2012-08-09)1.8.3 (ноябрь 13, 2012 (2012-11-13))[12]91.4Переписан движок Sizzle, улучшена анимация и поддержка$(html, props)
1.9январь 15, 2013 (2013-01-15)1.9.1 (февраль 4, 2013 (2013-02-04))[13]90.5Удалены устаревшие интерфейсы и произведена чистка кода
1.10май 24, 2013 (2013-05-24)1.10.2 (июль 3, 2013 (2013-07-03))[14]90.9Исправления ошибок, выявленных в ходе тестов веток 1.9 и 2.0
1.11январь 24, 2014 (2014-01-24)1.11.3 (апрель 28, 2015 (2015-04-28))[15]93.7
1.12январь 8, 2016 (2016-01-08)1.12.4 (май 20, 2016 (2016-05-20))[16]94.9
2.0апрель 18, 2013 (2013-04-18)2.0.3 (июль 3, 2013 (2013-07-03))81.7Удалена поддержка IE 6–8 ради ускорения и уменьшения размера файла
2.1январь 24, 2014 (2014-01-24)2.1.4 (апрель 28, 2015 (2015-04-28))82.4
2.2январь 8, 2016 (2016-01-08)2.2.4 (май 20, 2016 (2016-05-20))83.6
3.0июнь 9, 2016 (2016-06-09)[17]3.0.0 (июнь 9, 2016 (2016-06-09))84.3Поддержка Promises/A+,$.ajax и$.when обновлены,.data() стал совместим с HTML5
3.1июль 7, 2016 (2016-07-07)3.1.1 (сентябрь 23, 2016 (2016-09-23))84.7ДобавленjQuery.readyException, ошибки обработчиков готовности теперь не игнорируются
3.2март 16, 2017 (2017-03-16)3.2.1 (март 20, 2017 (2017-03-20))84.6Поддержка элементов<template>, объявлено устаревание ряда старых методов
3.3январь 19, 2018 (2018-01-19)3.3.1 (январь 20, 2018 (2018-01-20))84.9Устаревание старых функций, поддержка массивов классов в аргументах функций
3.4апрель 10, 2019 (2019-04-10)3.4.1 (май 1, 2019 (2019-05-01))86.1Оптимизация производительности, поддержка атрибутовnonce иnomodule, исправления ошибок, связанных с радиоэлементами
3.5апрель 10, 2020 (2020-04-10)3.5.1 (май 4, 2020 (2020-05-04))87.4Исправления уязвимостей, методы.even() и.odd(), устареваниеjQuery.trim
3.6март 2, 2021 (2021-03-02)3.6.4 (март 8, 2023 (2023-03-08))88.2Исправления ошибок, корректная обработка JSONP и новых селекторов Chrome
3.7май 11, 2023 (2023-05-11)3.7.1 (август 28, 2023 (2023-08-28))85.4Добавлен метод.uniqueSort(), улучшена производительность, исправлены размеры строк таблиц и обработка фокуса
4.0август 11, 2025 (2025-08-11)4.0.0-rc.1 (август 11, 2025 (2025-08-11))78.8Прекращена поддержка IE 10 и ниже (IE 11 ещё поддерживается), удалены устаревшие API и методы массивов, переработаны события фокуса, добавлена поддержкаFormData, переход на ES-модули

См. также

[править |править код]

Примечания

[править |править код]
  1. Willison T.jQuery 4.0.0 (англ.) — 2026.
  2. The jquery Open Source Project on Open Hub: Languages Page — 2006.
  3. The jQuery Team . Дата обращения: 21 августа 2018. Архивировано 19 августа 2018 года.
  4. Sizzle — движок кросс-браузерных CSS-селекторов . Дата обращения: 22 ноября 2010. Архивировано 18 ноября 2020 года.
  5. Бер Бибо, Иегуда Кац. 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.
  6. Официальный блог jQuery . Архивировано изоригинала 6 августа 2012 года.
  7. Официальная страница jQuery UI . Дата обращения: 3 июня 2009. Архивировано изоригинала 29 февраля 2012 года.
  8. Полный список контрибьюторов jQuery UI . Дата обращения: 3 июня 2009. Архивировано изоригинала 29 февраля 2012 года.
  9. Официальная страница jQuery . Дата обращения: 3 июня 2009. Архивировано изоригинала 29 февраля 2012 года.
  10. jQuery 1.6.4 Released . jQuery Blog (12 сентября 2011).
  11. jQuery 1.7.2 Released . jQuery Blog (21 марта 2012).
  12. jQuery 1.8.3 Released . jQuery Blog (13 ноября 2012).
  13. jQuery 1.9.1 Released . jQuery Blog (4 февраля 2013).
  14. jQuery 1.10.2 and 2.0.3 Released . jQuery Blog (3 июля 2013).
  15. jQuery 1.11.3 and 2.1.4 Released – iOS Fail-Safe Edition . jQuery Blog (28 апреля 2015).
  16. jQuery 1.12.4 and 2.2.4 Released . jQuery Blog (20 мая 2016).
  17. Chesters, James. Long-awaited jQuery 3.0 Brings Slim Build . infoq.com (15 июня 2016). Дата обращения: 28 января 2017.

Литература

[править |править код]

Ссылки

[править |править код]
Перейти к шаблону «JavaScript»
Идеи
Компиляторы
Движки
Библиотеки
ифреймворки
Редакторы
Инструменты
Связанные
технологии
Люди
Перейти к шаблону «Инструментарии виджетов»
Инструментарии (наборы)элементов графического интерфейса
Низко-
уровневые
Высоко-
уровневые
Amiga OS
Mac OS и
macOS
Windows
UNIX, подX
Кросс-
платфор-
менные
На основе Flash
На основе XML,
AJAX или SVG
На основе Java
На основе
C или C++
На основе Common Lisp
На основе Pascal
На основе Python
На основе Objective C
Источник —https://ru.wikipedia.org/w/index.php?title=JQuery&oldid=149837169
Категории:
Скрытые категории: