ie9-js - что-то еще сделало его устаревшим?
Итак, все знают ie9.js (с http://code.google.com/p/ie7-js/). Кажется, работает, но он никогда не выходил из бета-версии с момента последнего выпуска в 2010 году
Очевидно, что есть и другие вещи, которые делают что-то похожее (например, modernizr, html5shiv и CSS3Pie), но они не совсем одинаковы (не в последнюю очередь потому, что их нужно применять для каждой функции или они более ограничены по объему).).
Все еще считается хорошей практикой использовать его для модернизации? Должен ли я использовать что-то еще?
2 ответа
ie9.js по-прежнему хороший кусок кода. Он проделывает большую работу, исправляя вещи, которые IE ошибается.
Как вы правильно заметили, теперь это старый кусок кода, но он все еще работает.
Причины, по которым люди больше не могут его использовать:
- ie9.js - это один большой полифилл. Это делает его громоздким и медленным. Если вам нужно только исправить некоторые конкретные функции, это может быть излишним; несколько небольших пятен могут быть лучше.
- Большая часть исправлений ie9.js относится к IE6. Все меньше и больше сайтов утруждают себя поддержкой IE6, поэтому весь этот код является избыточным. Опять же, несколько небольших патчей может быть лучше.
- ie9.js больше не поддерживается активно. Это хорошо, потому что он выполняет работу, которую он намеревался выполнить, но другие, более новые патчи вызывают больший интерес, так как они являются новыми, а также для любого преимущества, которое они могут иметь.
Из инструментов, которые вы упомянули в качестве альтернативы (modernizr, html5shiv, CSS3Pie), ни один из них на самом деле не имеет какого-либо перекрестного перехода с ie9.js. (см. также этот ответ)
Однако вот несколько более свежих инструментов, которые могут быть хорошей альтернативой ie9.js:
- jQuery - или одна из других похожих библиотек. Это намного больше, чем просто исправление дыр в IE, но, поскольку в нем заложена возможность кросс-браузерной совместимости, даже в IE6, если вы пишете код jQuery, очень мало необходимости в патчах Javascript, предоставляемых ie9.js
- Селективзр - это, пожалуй, главный. Это polyfill для большинства отсутствующих селекторов CSS, которые IE не поддерживает. ie9.js делает еще немного (а именно реляционные селекторы для IE6 и 7), но Selectivzr использует уже существующие механизмы селекторов (вы выбираете jQuery, Prototype и т. д.), что означает, что он очень быстрый, а также легкий, поскольку использует ресурсы которые уже загружены.
Учитывая, что подавляющее большинство JS-кода в браузере в настоящее время пишется с использованием jQuery, это практически сводит к нулю необходимость во всеобъемлющем исправлении IE-fixer, например ie9.js, практически до нуля.
Однако, если вы не используете jQuery или подобную библиотеку, то вы можете обнаружить, что ie9.js все еще может работать для вас очень хорошо.
Некоторое время назад мы сделали патч для ie9.js и выпустили его с открытым исходным кодом: https://github.com/mylovecompany/ie9-js.