Статьи

Что нового в jQuery 2.0

Вторая ветвь самой популярной библиотеки JavaScript в Интернете была выпущена 18 апреля 2013 года. JQuery 2.0 теперь доступен для скачивания, но пока не спешите и устанавливайте его — есть одно существенное изменение…

Больше не поддерживается IE6 / 7/8

(или IE9 и IE10, если они используются в режиме «Compatibility View»).

Я все еще думаю, что немного преждевременно отказываться от IE8, но команда не могла больше ждать. jQuery 2.0 удаляет весь устаревший код IE для выбора узлов, манипулирования DOM, обработки событий и Ajax.

Это привело к уменьшению размера файла на 11% с 32 819 байт до 29 123 байт. Это 3,6 КБ для сжатой мини-версии — вряд ли это будет заметно даже при коммутируемом соединении. Правда, команда надеялась сэкономить больше, но обнаружила, что браузеры Android / Webkit 2.x все еще требуют много обходных путей.

Если вам нужна поддержка IE8 и ниже, придерживайтесь пока jQuery 1.9.x. Вы можете условно загрузить версию 2.0 во всех других браузерах, но:

  1. условная загрузка компенсирует любой выигрыш в уменьшении и обработке размера файла, и
  2. вы можете столкнуться с различиями между двумя ветвями jQuery. Команда пообещала минимизировать расхождение API, но почти наверняка будут проблемы. JQuery 1.10 решит известные проблемы совместимости.

Пользовательские сборки

Пользовательская функция сборки была улучшена в версии 2.0, поэтому вы можете исключить любой из 12 неиспользуемых модулей и уменьшить jQuery ниже 10 КБ. Модули, которые могут быть опущены:

  • ajax : все функциональные возможности Ajax, транспорты и сокращения событий.
  • ajax / xhr : XMLHTTPRequest Только Ajax-транспорт.
  • ajax / script : <script> Только для транспорта Ajax.
  • ajax / jsonp : JSONP Только транспорт Ajax (зависит от ajax / script).
  • css : метод .css() плюс .show() , .hide() и .toggle() .
  • не рекомендуется : устаревшие методы (только в настоящее время .andSelf() ).
  • размеры : .width() и .height() , включая inner- и outer- изменения.
  • эффекты : метод .animate() и его сокращения, такие как .slideUp() .
  • псевдоним события: добавление / запуск события, такие как .click() .
  • смещение : .offset() , .position() , .offsetParent() , .scrollLeft() и .scrollTop() .
  • wrap : .wrapAll() .wrap() , .wrapAll() , .wrapInner() и .unwrap() .
  • шипение : двигатель выбора шипения . Когда этот модуль исключен, он заменяется элементарным механизмом выбора на основе собственного метода querySelectorAll который не поддерживает некоторые расширенные селекторы jQuery.

Например, если вы используете анимацию CSS3, а не методы jQuery, вы можете опустить модуль эффектов и, возможно, размеры , смещение , обтекание и размер .

Создание собственной пользовательской сборки не для слабонервных, и вам потребуются некоторые знания Git, Node.js и Grunt. Полные инструкции доступны, но, в долгосрочной перспективе, я надеюсь, что команда сможет внедрить процесс онлайн-сборки, подобный Modernizr .

Должен ли я обновить?

Важно понимать, что jQuery 2.0 имеет паритет API с jQuery 1.9. Есть небольшое количество исправлений ошибок, но нет новых функций.

Однако, если вы один из тех счастливчиков, которые отказались от поддержки IE6 / 7/8, берите jQuery 2.0 и не оглядывайтесь назад.