jQuery - jQuery

редактировать
Библиотека JavaScript, созданная Джоном Ресигом в 2006 г.
jQuery
JQuery logo.svg
Первоначальный автор (авторы) Джон Ресиг
Разработчик (-ы) Команда jQuery
Первоначальный выпуск26 августа 2006 г.; 14 лет назад (26.08.2006)
Стабильный выпуск 3.5.1 / (4 мая 2020 г.; 5 месяцев назад (2020-05-04))
Репозиторий Измените это в Wikidata
Написано на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. платформа разработки.

Содержание

  • 1 Обзор
  • 2 История
    • 2.1 Популярность
  • 3 Функции
    • 3.1 Поддержка браузера
  • 4 Распространение
  • 5 Интерфейс
    • 5.1 Функции
      • 5.1.1 Методы jQuery
      • 5.1.2 Статические утилиты
    • 5.2 Бесконфликтный режим
    • 5.3 Стандартная начальная точка
    • 5.4 Связывание
    • 5.5 Создание новых элементов DOM
    • 5.6 Ajax
  • 6 подключаемых модулей jQuery
  • 7 История выпусков
  • 8 Среда тестирования
  • 9 См. Также
  • 10 Ссылки
  • 11 Дополнительная литература
  • 12 Внешние ссылки

Обзор

jQuery, по своей сути, представляет собой библиотеку управления объектной моделью документа (DOM). DOM - это древовидная структура всех элементов веб-страницы. jQuery упрощает синтаксис для поиска, выбора и управления этими элементами DOM. Например, jQuery можно использовать для поиска элемента в документе с определенным свойством (например, все элементы с тегом h1 ), изменения одного или нескольких его атрибутов (например, цвета, видимости) или создания он реагирует на событие (например, щелчок мышью).

jQuery также предоставляет парадигму для обработки событий, которая выходит за рамки простого выбора и манипулирования элементами DOM. Назначение события и определение функции обратного вызова события выполняются за один шаг в одном месте кода. jQuery также нацелен на включение других часто используемых функций JavaScript (например, постепенного появления и исчезновения при скрытии элементов, анимации путем управления свойствами CSS ).

Принципы разработки с помощью jQuery:

  • Разделение JavaScript и HTML: библиотека jQuery предоставляет простой синтаксис для добавления обработчиков событий в DOM с помощью JavaScript. вместо добавления атрибутов событий HTML для вызова функций JavaScript. Таким образом, он побуждает разработчиков полностью отделить код JavaScript от разметки HTML.
  • Краткость и ясность: jQuery способствует краткости и ясности с такими функциями, как «цепные» функции и сокращенные имена функций.
  • Устранение несовместимости между браузерами: движки JavaScript в разных браузерах немного отличаются, поэтому код JavaScript, работающий в одном браузере, может не работать в другом. Подобно другим инструментам JavaScript, jQuery обрабатывает все эти кроссбраузерные несоответствия и предоставляет согласованный интерфейс, который работает в разных браузерах.
  • Расширяемость: новые события, элементы и методы можно легко добавлять, а затем повторно использовать в качестве плагина.

История

jQuery был первоначально создан в январе 2006 года на BarCamp NYC Джоном Ресигом под влиянием более ранней библиотеки cssQuery Дина Эдвардса.. В настоящее время он поддерживается командой разработчиков под руководством Тимми Уиллисона (с механизмом выбора jQuery Sizzle, возглавляемым Ричардом Гибсоном).

jQuery изначально был лицензирован в соответствии с CC BY-SA 2.5, и перелицензировал на лицензию MIT в 2006 году. В конце 2006 года он был с двойной лицензией под GPL и Лицензии MIT. Поскольку это привело к некоторой путанице, в 2012 году GPL была отменена и теперь предоставляется только по лицензии MIT.

Популярность

  • В 2015 году jQuery использовался на 62,7% из 1 миллиона веб-сайтов с наибольшим успехом (согласно to) и 17% всех интернет-сайтов.
  • В 2017 году jQuery использовался на 69,2% из 1 миллиона самых популярных веб-сайтов (по данным Libscore).
  • В 2018 году использовался jQuery. на 78% из 1 миллиона лучших веб-сайтов.
  • В 2019 году jQuery использовался на 80% из 1 миллиона лучших веб-сайтов (по данным BuiltWith) и 74,1% из 10 миллионов лучших (по W3Techs).
  • По состоянию на февраль 2020 года jQuery используется 74,4% из 10 миллионов веб-сайтов (по данным W3Techs).

Возможности

jQuery включает следующие функции:

  • DOM выбор элементов с помощью мультибраузерного механизма выбора с открытым исходным кодом Sizzle, ответвления проекта jQuery
  • манипуляции с DOM на основе селекторов CSS, которые используют имена и атрибуты элементов, такие как id и class, как критерии выбора узлов в D OM
  • События
  • Эффекты и анимация
  • Объекты Ajax
  • Deferred и Promise для управления асинхронной обработкой
  • Анализ JSON
  • Расширяемость через плагины
  • Утилиты, такие как обнаружение функций
  • Методы совместимости, которые изначально доступны в современных браузерах, но нуждаются в резервных версиях для старых браузеров, например 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- это фабрика для создания объекта 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

Помимо доступа к существующим узлам DOM через jQuery, также можно создавать новые узлы DOM, если строка, переданная в качестве аргумента фабрике $ (), выглядит как HTML. Например, приведенный ниже код находит элемент HTML selectи создает новый элемент optionсо значением «VAG» и меткой «Volkswagen», которая затем добавляется к выберите меню :

$ ('select # car-brand').append ($ ('

Ajax

Можно делать запросы 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 позволяет разработчикам создавать код подключаемых модулей для расширения его функций. В Интернете доступны тысячи подключаемых модулей jQuery, которые охватывают ряд функций, таких как помощники Ajax, веб-службы, таблицы данных, динамические списки, XML и XSLT. инструменты, перетаскивание, события, обработка файлов cookie и модальные окна.

Важным источником подключаемых модулей jQuery является поддомен подключаемых модулей веб-сайт проекта jQuery. Однако плагины в этом субдомене были случайно удалены в декабре 2011 года в попытке избавить сайт от спама. Новый сайт представляет собой репозиторий, размещенный на GitHub, что требует от разработчиков повторной отправки своих подключаемых модулей и соответствия новым требованиям к отправке. jQuery предоставляет «Учебный центр», который может помочь пользователям понять JavaScript и начать разработку подключаемых модулей jQuery.

Для создания этих подключаемых модулей разработчики могут либо написать свой собственный код с нуля, либо использовать его вершина существующей структуры, такой как jQuery Boilerplate.

История выпусков

ВерсияПервоначальный выпускПоследнее обновлениеМинимальный размер (КБ)Дополнительные примечания
1.026 августа 2006 г. (2006-08-26)Первый стабильный выпуск
1.114 января 2007 г. (2007 г. -01-14)
1,210 сентября 2007 г. (2007-09-10)1,2,654,5
1,314 января 2009 г. (2009-01-14)1.3.255.9Sizzle Selector Engine введен в ядро ​​
1.414 января 2010 (2010-01-14)1.4.476.7
1.531 января 2011 (2011-01-31)1.5.283.9Управление отложенным обратным вызовом, перезапись модуля ajax
1.63 мая 2011 г. (2011-05-03)1.6.489.5Значительные улучшения производительности attr () и val () функции
1,73 ноября 2011 г. (2011-11-03)1.7.2 (21 марта 2012 (2012-03-21))92.6Новые API событий:.on () и.off (), в то время как старые API все еще поддерживаются.
1,89 августа 2012 г. (2012-08-09)1.8.3 (13 ноября 2012 (2012-11-13))91,4Sizzle Selector Engine переписан, улучшена анимация и гибкость $ (html, props).
1,915 января 2013 (2013-01-15)1.9.1 (4 февраля 2013 (2013-02-04))90,5Удаление устаревших интерфейсов и очистка кода
1.1024 мая 2013 г. (2013-05-24)1.10.2 (3 июля 2013 г. (2013 г.) -07-03))90.9Включены исправления ошибок и различия, обнаруженные в бета-циклах 1.9 и 2.0
1.1124 января 2014 г. (2014- 01-24)1.11.3 (28 апреля 2015 (2015-04-28))93.7
1.128 января 2016 (2016- 01-08)1.12.4 (20 мая 2016 (2016-05-20))94.9
2.018 апреля 2013 (2013- 04-18)2.0.3 (3 июля 2013 (2013-07-03))81.7Прекращена поддержка IE 6–8 для повышения и снижения производительности в размер файла
2.124 января 2014 (2014-01-24)2.1.4 (28 апреля 2015 (2015-04-28))82,4
2,28 января 2016 (2016-01-08)2.2.4 (20 мая 2016 (2016-05-20))83,6
3,09 июня 2016 г. (2016-06-09)3.0.0 (9 июня 2016 (2016-06-09))84.3Promises / поддержка A + для Deferreds, $.ajax и $.when,.data () HTML5-совместимый
3.17 июля 2016 г. (2016-07-07)3.1.1 (сентябрь 23, 2016 (2016-09-23))84.7Добавлен jQuery.readyException, ошибки готового обработчика теперь не заглушаются
3.216 марта 2017 г. (2017-03-16)3.2.1 (20 марта 2017 (2017-03-20))84.6Добавлена ​​поддержка для получения содержимого