2010-01-27 4 views
2

Веб-дизайнер создал страницы для нас с комментариями, специфичными для IE. Следовательно, некоторые таблицы стилей включаются только тогда, когда пользователь использует конкретную версию IE:Использование условных комментариев IE для включения файлов CSS или JavaScript приводит к большему количеству запросов HTTP

<!--[if lt IE 7]> 
<link type="text/css" rel="stylesheet" href="/styles/ie6-fixes.css" media="screen" /> 
<![endif]--> 

Тот же метод был использован для файлов JavaScript. К сожалению, это приводит к более HTTP-запросам для пользователей IE, поэтому воспринимаемое время загрузки страницы происходит медленнее. Как правило, моя практика состоит в том, чтобы объединить все CSS в один файл и все JS в одном файле.

Есть ли способ, которым эти IE-специфические комментарии в самих CSS и/или JS-файлах? Или я могу имитировать эту функциональность?

ответ

3

Для CSS вы можете использовать IE конкретные комментарии, чтобы окружить содержание документа в элементе формы

<div id="IE6"> 

Это может позволить вам реализовать IE6 CSS исправления, предваряя селекторы с «# IE6».

Для получения дополнительной информации см http://www.positioniseverything.net/articles/cc-plus.html

JScript также условной компиляции, которые могут помочь вам консолидировать ваши файлы JS в один. См. http://msdn.microsoft.com/en-us/library/ahx1z4fs(VS.80).aspx

+0

Спасибо, я думаю, что это действительно лучшее решение! – frankadelic

0

Для CSS вы можете попробовать использовать различные трюки выбора, которые игнорируют другие браузеры, и IE6 будет уважать, но это влечет за собой небольшую стоимость для всех остальных.

Для JS вы можете обновить свои функции, чтобы проверить строку User-Agent, но в основном те же проблемы, что и в предложении CSS.

1

Хорошо, что вы можете сделать, это использовать динамический построитель. Например, в ваших условных выражениях вы можете использовать встроенные скрипты для добавления параметров для вашей сборки в массив js. то вы можете использовать этот массив для создания URL-адреса для вашего скрипта/css, например, /assets/css/build.php?use=base,ie7 и somethign аналогичного для js.

Затем в этом php (или любом другом цвете lang, который вы хотите) вы можете использовать minify или какую-либо другую библиотеку для компиляции всех скриптов/css в отдельные файлы и вырезать все трещины и доставить их. Затем вы также можете кэшировать сборки для более быстрой доставки позже.

Ive использовал эту стратегию для ряда проектов с плагинами PHP Minify и/или разных Symfony, которые делают то же самое.

 Смежные вопросы

  • Нет связанных вопросов^_^