Best Practices for Speeding Up Your Web Site / Рекомендации лучших вебоводов для ускорения вашего сайта: Avoid CSS Expressions / Избегайте CSS выражений
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
CSS выражения - мощный (и опасный) способ динамической установки CSS свойств. Они поддерживались в IE начиная с 5-й версии, но были отменены в IE8. Например, с помощью этих выражений цвет фона может может быть переназначен каждый час: Alexasa 29.08.12 в 08:35 |
|
|
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" ); Alexasa 29.08.12 в 08:35 |
||
|
Как можно видеть, метод выражений допускает использование JavaScript выражений. Свойства CSS устанавливаются в результате вычисления JavaScript выражений. Метод выражений игнорируется остальными браузерами, поэтому при установке свойств в IE потребуется создание соответствующих методов для других браузеров. Alexasa 29.08.12 в 14:26 |
||
|
Проблема с выражениями состоит в том, что они вычисляются более часто, чем от них ожидается. Они вычисляются не только при создании страницы и изменении ее размеров, но также когда страница прокручивается и даже тогда, когда пользователь двигает мышкой над ней. Добавив счетчик к CSS выражению мы можем отследить как часто вычисляется CSS выражение. Передвижение мышки по странице с легкостью генерирует 10000 (10 тысяч!) вычислений. Alexasa 29.08.12 в 14:31 |
||
|
Одним из путей уменьшения количества вычисления CSS выражения может быть использование одноразовых выражений, когда первое вычисление выражения передает значение стиля в постоянную переменную, которая замещает собой CSS выражение. Если свойство должно устанавливаться динамически во время жизни страницы, альтернативой может быть использование обработчиков событий. Если же вам просто необходимо использовать CSS выражения, помните, что они могут вычисляться тысячи раз, и могут серьезно повлиять на производительность страницы. Alexasa 29.08.12 в 14:36 |
