Готовый перевод Best Practices for Speeding Up Your Web Site / Рекомендации лучших вебоводов для ускорения вашего сайта: Avoid CSS Expressions / Избегайте CSS выражений

CSS выражения - мощный (и опасный) способ динамической установки CSS свойств. Они поддерживались в IE начиная с 5-й версии, но были отменены в IE8. Например, с помощью этих выражений цвет фона может может быть переназначен каждый час:

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

Как можно видеть, метод выражений допускает использование JavaScript выражений. Свойства CSS устанавливаются в результате вычисления JavaScript выражений. Метод выражений игнорируется остальными браузерами, поэтому при установке свойств в IE потребуется создание соответствующих методов для других браузеров.

Проблема с выражениями состоит в том, что они вычисляются более часто, чем от них ожидается. Они вычисляются не только при создании страницы и изменении ее размеров, но также когда страница прокручивается и даже тогда, когда пользователь двигает мышкой над ней. Добавив счетчик к CSS выражению мы можем отследить как часто вычисляется CSS выражение. Передвижение мышки по странице с легкостью генерирует 10000 (10 тысяч!) вычислений.

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

Переведено на Нотабеноиде
http://notabenoid.org/book/31735/110117

Переводчики: Alexasa

Настройки

Готово:

100.00% КП = 1.0