Первоначальный автор (авторы) | Джон Ресиг |
---|---|
Разработчик (-ы) | Команда jQuery |
Первоначальный выпуск | 26 августа 2006 г.; 14 лет назад (26.08.2006) |
Стабильный выпуск | 3.5.1 / (4 мая 2020 г.; 5 месяцев назад (2020-05-04)) |
Репозиторий | |
Написано на | JavaScript |
Платформа | См. § Поддержка браузера |
Размер | 27–274 КБ |
Тип | Библиотека JavaScript |
Лицензия | MIT |
Веб-сайт | jquery.com |
jQuery - это библиотека JavaScript, предназначенная для упрощения HTML Обход дерева DOM и управление им, а также обработка событий, CSS-анимация и Ajax. Это бесплатное программное обеспечение с открытым исходным кодом, использующее разрешающую лицензию MIT. По состоянию на май 2019 года jQuery используется 73% из 10 миллионов самых популярных веб-сайтов. Анализ Web показывает, что это наиболее широко используемая библиотека JavaScript с большим отрывом, имеющая как минимум в 3-4 раза больше использование, чем любая другая библиотека JavaScript.
Синтаксис jQuery разработан, чтобы упростить навигацию по документу, выбрать элементы DOM, создать анимацию, обработать события и разработка приложений Ajax. jQuery также предоставляет разработчикам возможность создавать надстройки поверх библиотеки JavaScript. Это позволяет разработчикам создавать абстракции для низкоуровневого взаимодействия и анимации, расширенных эффектов и высокоуровневых, тематических виджетов. Модульный подход к библиотеке jQuery позволяет создавать мощные динамические веб-страницы и веб-приложения.
Набор основных функций jQuery - выбор, обход и манипуляции с элементами DOM - включенный его механизмом выбора (названный «Sizzle» из версии 1.3), создал новый «стиль программирования», объединение алгоритмов и структур данных DOM. Этот стиль повлиял на архитектуру других фреймворков JavaScript, таких как YUI v3 и Dojo, что позже стимулировало создание стандартного API селекторов. Позже этот стиль был усовершенствован за счет более глубокого слияния алгоритма и данных в наследнике jQuery, фреймворке D3.js.
Microsoft и Nokia объединяют jQuery на своих платформах. Microsoft включает его в Visual Studio для использования в рамках Microsoft ASP.NET AJAX и ASP.NET MVC, а Nokia интегрировала его в виджет Web Run-Time. платформа разработки.
jQuery, по своей сути, представляет собой библиотеку управления объектной моделью документа (DOM). DOM - это древовидная структура всех элементов веб-страницы. jQuery упрощает синтаксис для поиска, выбора и управления этими элементами DOM. Например, jQuery можно использовать для поиска элемента в документе с определенным свойством (например, все элементы с тегом h1 ), изменения одного или нескольких его атрибутов (например, цвета, видимости) или создания он реагирует на событие (например, щелчок мышью).
jQuery также предоставляет парадигму для обработки событий, которая выходит за рамки простого выбора и манипулирования элементами DOM. Назначение события и определение функции обратного вызова события выполняются за один шаг в одном месте кода. jQuery также нацелен на включение других часто используемых функций JavaScript (например, постепенного появления и исчезновения при скрытии элементов, анимации путем управления свойствами CSS ).
Принципы разработки с помощью jQuery:
jQuery был первоначально создан в январе 2006 года на BarCamp NYC Джоном Ресигом под влиянием более ранней библиотеки cssQuery Дина Эдвардса.. В настоящее время он поддерживается командой разработчиков под руководством Тимми Уиллисона (с механизмом выбора jQuery Sizzle, возглавляемым Ричардом Гибсоном).
jQuery изначально был лицензирован в соответствии с CC BY-SA 2.5, и перелицензировал на лицензию MIT в 2006 году. В конце 2006 года он был с двойной лицензией под GPL и Лицензии MIT. Поскольку это привело к некоторой путанице, в 2012 году GPL была отменена и теперь предоставляется только по лицензии MIT.
jQuery включает следующие функции:
jQuery.inArray ()
и jQuery.each ()
.jQuery 3.0 и более поздние версии поддерживают «текущие версии-1» (то есть текущая стабильная версия браузер и предшествующая ему версия) Firefox (и ESR), Chrome, Safari и Edge, а также Internet Explorer 9 и новее. На мобильных устройствах поддерживается iOS 7 и новее, и Android 4.0 и новее.
Библиотека jQuery обычно распространяется как единый JavaScript файл, который определяет все его интерфейсы, включая функции DOM, Events и Ajax. Он может быть включен на веб-страницу путем ссылки на локальную копию или путем ссылки на одну из многих копий, доступных с общедоступных серверов. jQuery имеет сеть доставки контента (CDN), размещенную на MaxCDN. Google в службе размещенных библиотек Google и Microsoft также размещают библиотеку.
Пример связывания копии библиотеки локально (с того же сервера, на котором размещена веб-страница):
Пример связывания копии библиотека из общедоступного CDN jQuery:
jQuery предоставляет два вида функций, статических служебных функций и jQuery методы объекта. У каждого свой стиль использования.
Оба доступны через основной идентификатор jQuery: jQuery
. У этого идентификатора есть псевдоним $
. Доступ ко всем функциям можно получить через любое из этих двух имен.
Функция jQuery
- это фабрика для создания объекта jQuery, который представляет один или несколько узлов DOM. У объектов jQuery есть методы для управления этими узлами. Эти методы (иногда называемые командами) объединены в цепочку, поскольку каждый метод также возвращает объект jQuery.
Доступ и управление несколькими узлами DOM в jQuery обычно начинается с вызова функции $
со строкой селектора CSS. Это возвращает объект jQuery, ссылающийся на все соответствующие элементы на странице HTML. $ ("div.test")
, например, возвращает объект jQuery со всеми элементами div
класса test
. Этим набором узлов можно управлять, вызывая методы для возвращенного объекта jQuery.
Это служебные функции, которые не действуют напрямую на объект jQuery. Доступ к ним осуществляется как к статическим методам по идентификатору jQuery или $. Например, $.ajax ()
- статический метод.
jQuery предоставляет функцию $.noConflict ()
, которая отказывается от управления именем $
. Это полезно, если на веб-странице используется jQuery, который также связывает другую библиотеку, для которой в качестве идентификатора требуется символ $
. В бесконфликтном режиме разработчики могут использовать jQuery
вместо $
без потери функциональности.
Как правило, jQuery используется путем помещения кода инициализации и функций обработки событий в $ (handler)
. Это запускается jQuery, когда браузер завершает построение DOM для текущей веб-страницы.
$ (function () {// Эта анонимная функция вызывается, когда страница завершает загрузку. // Здесь можно разместить код для создания объектов jQuery, обработки событий и т. Д.});
или
$ (fn); // Функция с именем fn, определенная где-то еще, вызывается после загрузки страницы.
Исторически $ (document).ready (callback)
был де-факто идиомой для запуска кода после того, как DOM готова. Однако, начиная с jQuery 3.0, разработчикам рекомендуется использовать вместо этого гораздо более короткую подпись $ (handler)
.
методов объекта jQuery обычно также возвращает объект jQuery, что позволяет использовать цепочки методов:
$ ('div.test').on ('click', handleTestClick).addClass ('foo');
Эта строка находит все элементы div
с атрибутом класса test
, затем регистрирует обработчик событий для каждого элемента для события «щелчок», затем добавляет атрибут класса foo
для каждого элемента.
Некоторые методы объекта jQuery получают определенные значения (вместо изменения состояния). Примером этого является метод val ()
, который возвращает текущее значение элемента ввода текста. В этих случаях такой оператор, как $ ('# user-email'). Val ()
не может использоваться для связывания, поскольку возвращаемое значение не ссылается на объект jQuery.
Помимо доступа к существующим узлам DOM через jQuery, также можно создавать новые узлы DOM, если строка, переданная в качестве аргумента фабрике $ (), выглядит как HTML. Например, приведенный ниже код находит элемент HTML select
и создает новый элемент option
со значением «VAG» и меткой «Volkswagen», которая затем добавляется к выберите меню :
$ ('select # car-brand').append ($ ('
Можно делать запросы Ajax (с поддержкой кроссбраузерности ) с $.ajax ()
для загрузки и управлять удаленными данными.
$.ajax ({type: 'POST', url: '/process/submit.php', data: {name: 'John', location: 'Boston',},}). Then (function (msg) {alert ('Данные сохранены:' + msg);}). catch (function (xmlHttpRequest, statusText, errorThrown) {alert ('Ошибка отправки вашей формы. \ n \ n' + 'Запрос XML Http:' + JSON. stringify (xmlHttpRequest) + ', \ nStatus Text:' + statusText + ', \ nError Thrown:' + errorThrown);});
В этом примере данные name = John
и location = Boston
отправляются в /process/submit.php
на сервере. Когда этот запрос завершается, вызывается функция успеха, чтобы предупредить пользователя. Если запрос не выполняется, он предупреждает пользователя об ошибке, статусе запроса и конкретной ошибке.
В приведенном выше примере используются методы .then ()
и .catch ()
для регистрации обратных вызовов, которые запускаются после завершения ответа. Эти обратные вызовы обещаний должны использоваться из-за асинхронного характера запросов Ajax.
Архитектура jQuery позволяет разработчикам создавать код подключаемых модулей для расширения его функций. В Интернете доступны тысячи подключаемых модулей jQuery, которые охватывают ряд функций, таких как помощники Ajax, веб-службы, таблицы данных, динамические списки, XML и XSLT. инструменты, перетаскивание, события, обработка файлов cookie и модальные окна.
Важным источником подключаемых модулей jQuery является поддомен подключаемых модулей веб-сайт проекта jQuery. Однако плагины в этом субдомене были случайно удалены в декабре 2011 года в попытке избавить сайт от спама. Новый сайт представляет собой репозиторий, размещенный на GitHub, что требует от разработчиков повторной отправки своих подключаемых модулей и соответствия новым требованиям к отправке. jQuery предоставляет «Учебный центр», который может помочь пользователям понять JavaScript и начать разработку подключаемых модулей jQuery.
Для создания этих подключаемых модулей разработчики могут либо написать свой собственный код с нуля, либо использовать его вершина существующей структуры, такой как jQuery Boilerplate.
Версия | Первоначальный выпуск | Последнее обновление | Минимальный размер (КБ) | Дополнительные примечания |
---|---|---|---|---|
1.0 | 26 августа 2006 г. (2006-08-26) | Первый стабильный выпуск | ||
1.1 | 14 января 2007 г. (2007 г. -01-14) | |||
1,2 | 10 сентября 2007 г. (2007-09-10) | 1,2,6 | 54,5 | |
1,3 | 14 января 2009 г. (2009-01-14) | 1.3.2 | 55.9 | Sizzle Selector Engine введен в ядро |
1.4 | 14 января 2010 (2010-01-14) | 1.4.4 | 76.7 | |
1.5 | 31 января 2011 (2011-01-31) | 1.5.2 | 83.9 | Управление отложенным обратным вызовом, перезапись модуля ajax |
1.6 | 3 мая 2011 г. (2011-05-03) | 1.6.4 | 89.5 | Значительные улучшения производительности attr () и val () функции |
1,7 | 3 ноября 2011 г. (2011-11-03) | 1.7.2 (21 марта 2012 (2012-03-21)) | 92.6 | Новые API событий:.on () и.off (), в то время как старые API все еще поддерживаются. |
1,8 | 9 августа 2012 г. (2012-08-09) | 1.8.3 (13 ноября 2012 (2012-11-13)) | 91,4 | Sizzle Selector Engine переписан, улучшена анимация и гибкость $ (html, props). |
1,9 | 15 января 2013 (2013-01-15) | 1.9.1 (4 февраля 2013 (2013-02-04)) | 90,5 | Удаление устаревших интерфейсов и очистка кода |
1.10 | 24 мая 2013 г. (2013-05-24) | 1.10.2 (3 июля 2013 г. (2013 г.) -07-03)) | 90.9 | Включены исправления ошибок и различия, обнаруженные в бета-циклах 1.9 и 2.0 |
1.11 | 24 января 2014 г. (2014- 01-24) | 1.11.3 (28 апреля 2015 (2015-04-28)) | 93.7 | |
1.12 | 8 января 2016 (2016- 01-08) | 1.12.4 (20 мая 2016 (2016-05-20)) | 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) | 3.0.0 (9 июня 2016 (2016-06-09)) | 84.3 | Promises / поддержка A + для Deferreds, $.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 | Добавлена поддержка для получения содержимого элементы и отказ от различных старых методов. |
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 г.) | 86,1 | Производительность улучшения, поддержка nonce и nomodule , исправления для радиоэлементов, незначительное исправление безопасности. |
3,5 | 10 апреля 2020 г. (2020-04-10) | 3.5.1 (4 мая 2020 г.) | 87,4 | Безопасность исправления, методы .even () .odd () , jQuery.trim не рекомендуется |
QUnit - это среда автоматизации тестирования, используемая для тестирования проекта jQuery. Команда jQuery разработала его как внутреннюю библиотеку модульного тестирования. Команда jQuery использует его для тестирования своего кода и подключаемых модулей, но может тестировать любой общий код JavaScript, включая код JavaScript на стороне сервера.
С 2011 года группа тестирования jQuery использует QUnit с помощью для тестирования каждой версии кодовой базы jQuery.
Викискладе есть медиафайлы, связанные с JQuery. |