Pull to refresh

Релиз jQuery 3.0 Release Candidate

Reading time 3 min
Views 4.9K


UPD: по просьбам читателей добавлен список ключевых изменений.

В прошедшую пятницу, 20 мая вышел jQuery 3.0 Release Candidate – практически финальная версия jQuery 3.0, которую уже можно испробовать в деле. После релиза третьей версии jQuery, ветки 1.12 и 2.2 будут некоторое время получать критические патчи, но новых функций или серьезных изменений не получат. jQuery 3.0 не будет поддерживать IE 6, 7 и 8 версии, поэтому если вам важна поддержка этих браузеров – можете использовать последний релиз 1.12.

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

Ссылки для скачивания jQuery 3.0 Release Candidate:

Полная версия: https://code.jquery.com/jquery-3.0.0-rc1.js
Минифицированная: https://code.jquery.com/jquery-3.0.0-rc1.min.js

Также есть вариант установки новой версии плагина через npm:
npm install jquery@3.0.0-rc1


jQuery Migrate 3.0-rc plugin:

Полная версия: code.jquery.com/jquery-migrate-3.0.0-rc1.js
Минифицированная: code.jquery.com/jquery-migrate-3.0.0-rc1.min.js

Установка через npm:
npm install jquery-migrate@3.0.0-rc1

Краткий список изменений можно найти на странице блога jQuery, более полный – на страничке jQuery Core 3.0 Upgrade Guide и в баг-трекере на гитхабе.

Список ключевых изменений:


Поддержка браузеров:
  • Internet Explorer: 9+
  • Chrome, Edge, Firefox, Safari: текущая и предыдущая версии
  • Opera: текущая версия
  • Safari Mobile iOS: 7+
  • Android 4.0+


Ajax
  • Удалены методы success, error и complete deffered объектов из jQuery.ajax – вместо них предлагается использовать стандартные done, fail, и always.
  • Кросс-доменные скрипты при запросах через jQuery.ajax() и jQuery.get() дожны быть объявлены как dataType: «script», для предотвращения возможности атак через отправку скрипта как обычного контента. При этом jQuery.getScript() устанавливает dataType: «script» по умолчанию, как и раньше.
  • jQuery.ajax() больше не обрезает hash из URL. Если конечный сервер не поддерживает такой адрес – придется убрать hash самостоятельно.
  • jQuery.get() и jQuery.post() теперь поддерживают параметр settings ( github.com/jquery/jquery/issues/1986 )


Атрибуты
  • .removeAttr() больше не устанавливает значение false для таких атрибутов как checked, selected, и readonly. Вместо этого, если нужно, предлагается использовать .prop( «checked», false )
  • Множественный select (select multiple), с пустым списком выбранных значений возвращает пустой массив
  • SVG теперь поддерживает классовые методы, такие как .addClass() и .hasClass()
  • Объявлен устаревшим метод .toggleClass() без аргументов и .toggleClass( Boolean ) – поведение пока остается прежним, но не рекомендуется к использованию, и возможно в будущем будет изменено.


Ядро
  • jQuery 3.0 работает в Strict mode («use strict»)
  • Обработчики document-ready теперь работают асинхронно
  • Удалены устаревшие свойства .context и .selector
  • Удалены ранее незадокументированные методы jQuery.swap, jQuery.buildFragment, jQuery.domManip
  • Методы width(), .height(), .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight(), .offsetTop() и .offsetLeft() теперь возвращают undefined вместо null
  • Цикл for...of теперь может использоваться для коллекций элементов jquery (вместо .each(), например)
  • Включена формальная поддержка jQuery.ready promise
  • Метод jQuery.unique() переименован в jQuery.uniqueSort()
  • jQuery.parseJSON() объявлен устаревшим, предлагается использовать нативный JSON.parse()


Data
  • Метод .data() теперь поддерживает имена с дефисом


Deferred


Размеры экранов
  • Методы .width(), .height(), .css(«width»), and .css(«height») теперь могут возвращать не только целочисленные значения
  • Методы .width(), .height(), .css(«width»), и .css(«height») объекта window теперь включают ширину скроллбара


Эффекты

События
  • Удалены методы .load(), .unload(), и .error()
  • Удалено событие ready из .on(«ready», fn)
  • Удалена нормализация event.pageX и event.pageY
  • Удалены jQuery.event.props и jQuery.event.fixHooks
  • Объявлены устаревшими методы bind() и .delegate()


Манипуляции
  • .wrapAll(function) теперь вызывает функцию только один раз


Offset
  • Применение .offset() к некорректному jquery-селектору теперь вызывает ошибку


Селекторы
  • Изменено поведение селекторов :hidden и :visible
  • jQuery("#") и .find("#") теперь не являются корректными селекторами
  • Новый метод jQuery.escapeSelector()
  • Объявлены устаревшими jQuery.expr[":"] и jQuery.expr.filters


Сериализация
  • jQuery.param() больше не конвертирует %20 в символ «плюс»


Буду рад вашим комментариям и замечаниям. О найденных ошибках и недочетах сообщайте в личку.
Спасибо!
Tags:
Hubs:
-1
Comments 2
Comments Comments 2

Articles