Ie9-js - что-то еще от него устарело?

Итак, все знают ie9.js(от http://code.google.com/p/ie7-js/). Кажется, что он работает, но он никогда не покидал бета-версию с момента последней версии в 2010 году.

Очевидно, есть и другие вещи, которые немного чем-то похожи (например, modernizr, html5shiv и CSS3Pie), но они не совсем одинаковы (не в последнюю очередь потому, что их нужно применять для каждой функции или более ограниченный по охвату).

До сих пор считается хорошей практикой использовать его для модернизации? Должен ли я использовать что-то еще?

Ответ 1

ie9.js по-прежнему является хорошей частью кода. Он выполняет большую работу, исправляя материал, который IE ошибается.

Как вы правильно отметили, теперь это старый фрагмент кода, но он все еще работает.

Причины, по которым люди больше не могут его использовать:

  • ie9.js - это один большой polyfill. Это делает его громоздким и медленным. Если вам нужно только исправить определенные функции, это может быть излишним; несколько меньших патчей могут быть лучше.
  • Основная часть исправлений, которые ie9.js делает для IE6. Меньше и меньше сайтов больше не хотят поддерживать IE6, поэтому весь этот код лишний. Опять же, несколько небольших патчей могут быть лучше.
  • ie9.js активно не поддерживается. Это прекрасно, потому что он выполняет задание, которое он намеревался сделать, но другие, более новые исправления вызывают больше интереса, поскольку они новы, как для любого преимущества, которое они могут иметь.

Из инструментов, которые вы упомянули как альтернативы (modernizr, html5shiv, CSS3Pie), ни один из них на самом деле не имеет каких-либо функций, связанных с ie9.js. (см. также этот ответ)

Однако, вот некоторые более свежие инструменты, которые могут быть хорошими альтернативами ie9.js:

  • jQuery - или одна из других подобных библиотек. Это намного больше, чем просто исправить IE дыры, но поскольку он делает точку кросс-браузерной совместимости, даже в IE6, если вы пишете код jQuery, очень мало нужно для патчей Javascript, предоставленных ie9.js
  • Selectivzr - это, вероятно, главный. Это polyfill для большинства отсутствующих селекторов CSS, которые IE не поддерживает. ie9.js делает еще несколько (а именно реляционных селекторов для IE6 и 7), но Selectivzr использует уже существующие механизмы выбора (ваш выбор jQuery, Prototype и т.д.), что означает, что он очень быстрый и легкий, потому что он использует ресурсы которые уже загружены.

Учитывая, что подавляющее большинство JS-кода в браузере написано с использованием jQuery в наши дни, это в основном снижает потребность в всеобъемлющем патче IE-fixer, например ie9.js, практически до нуля.

Однако, если вы не используете jQuery или подобную библиотеку, вы можете обнаружить, что ie9.js все еще может работать для вас очень хорошо.

Ответ 2

Мы сделали патч для ie9.js некоторое время назад и выпустили его как с открытым исходным кодом: https://github.com/mylovecompany/ie9-js.