Статьи

Поддержка JQuery 2.0 Drops для IE6, 7 и 8

В неожиданном объявлении в блоге jQuery команда решила, что jQuery 1.9 станет последним выпуском, поддерживающим устаревшие выпуски Internet Explorer. jQuery 2.0, выпуск которого запланирован на 2013 год, больше не будет поддерживать IE6, 7 и 8.

В сущности, jQuery 2.0 будет более быстрой и быстрой библиотекой без устаревшего IE, такого как процедуры выбора DOM, различные модели событий и HTML5-прокладки. jQuery 1.9 будет продолжать разрабатываться и поддерживать старые IE. Команда сообщает, что вы сможете поддерживать каждый браузер, используя условные комментарии, например

 <! - [if lt IE 9]>
     <script src = "jquery-1.9.0.js"> </ script>
 <[ENDIF] ->
 <! - [if gte IE 9]> <! ->
     <script src = "jquery-2.0.0.js"> << / script>
 <! - <[ENDIF] ->

Никто не ожидает, что старые версии IE будут поддерживаться вечно, а некоторые будут приветствовать решение отказаться от браузеров, которые в течение многих лет вызывали горе в разработке. Но утверждение удивительно по нескольким причинам.

Во-первых, в то время как использование IE6 и 7 упало до уровня ниже 2%, они остаются предпочтительными браузерами для многих крупных корпораций, государственных ведомств и китайцев. IE8, вероятно, упадет ниже 10% к 2013 году, но это последняя версия, доступная для Windows XP. Почти каждый третий человек использует ОС, и пока он умирает, он длится гораздо дольше, чем ожидала Microsoft.

[Следующий раздел был пересмотрен. Спасибо всем, кто указал на ошибку в оригинальном коде.]

Во-вторых, условные комментарии. В самом деле? Мы все еще прибегаем к обнаружению браузера в 2013 году? Эта практика должна была исчезнуть в 1999 году. Условные комментарии были временным взломом и были исключены в IE10 . JavaScript или серверный браузер сниффинг не лучше.

Также возникает проблема наличия двух разветвленных баз кода для одной и той же библиотеки. Неизбежно, будут ошибки и различия между 1.9 и 2.0 — особенно, когда jQuery выходит за рамки этих выпусков. Что вы делаете, когда ваш код работает в одном, а не в другом?

Третье: основная причина, по которой разработчики используют jQuery, — обойти проблемы совместимости браузера. Первоначальная цель jQuery, Prototype, Mootools, YUI и подобных библиотек состояла в том, чтобы предоставить согласованный набор объектов и методов, которые абстрагируют различные API-интерфейсы браузера. Обертки размещаются вокруг таких функций, как выбор DOM и делегирование событий, чтобы сгладить морщины реализации.

Сегодня различия между современными браузерами незначительны. Рассмотрим метод DOM querySelectorAll(CSS selector) он поддерживается везде (даже в IE8) и всегда будет быстрее, чем jQuery $(CSS selector) Основные функции JavaScript, такие как обход, манипулирование, события и Ajax, доступны везде. Анимации и эффекты jQuery также могут быть заменены CSS3. jQuery 2.0 по-прежнему будет содержать полезные утилиты и исправления совместимости, но без устаревшей поддержки IE есть меньше оснований для его использования.

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

Наконец, если jQuery 1.9 работает во всех браузерах, зачем использовать jQuery 2.0, который не работает? Это может работать немного быстрее, но будет ли эта разница заметной? Библиотека уже эффективна и использует собственные API, когда они доступны.

Я могу понять мотивы этого решения, но 2013 год кажется немного преждевременным. jQuery стал популярным благодаря своей поддержке устаревших браузеров; команда не должна слишком поспешно отказываться от этой политики.