Вторая ветвь самой популярной библиотеки 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 во всех других браузерах, но:
- условная загрузка компенсирует любой выигрыш в уменьшении и обработке размера файла, и
- вы можете столкнуться с различиями между двумя ветвями 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 и не оглядывайтесь назад.