- javascript
- expression
6 сентября 2009, 10:55 более года назад
Одноразовый и Кэшируемый expression в ИЕ (lte 7)
Все знают о возможностях ИЕ, по части вставки JavaScript кода в CSS, так называемых expression. Казалось бы замечательно, но на самом деле нет. Если мы просто повесим експрешн на какой-нить селектор, он будет вычисляться постоянно, заметно снижая производительность не столь быстрых браузеров.
Для этого можно использовать одноразовый и кэшируемый експрешны.
Для этого можно использовать одноразовый и кэшируемый експрешны.
/* Одноразовый expression * - хак для gte IE7 */ * html .onecetime { width: expression( runtimeStyle.width = "auto", appendChild(createElement("sometag"))); } /* элемент создаётся через JS, поэтому expression срабатывает только раз */ * html .onecetime sometag{ background: transparent; } /* Кэшируемый expression */ * html .cached { /* t = this, Делаем высоту 100% */ h: expression( function (t) { var h = t.parentNode.offsetHeight; if (t.h != h) { t.h = h; t.style.height = h + "px"; } } (this) ); }