Deerua about Coding -> Одноразовый и Кэшируемый expression в ИЕ (lte 7)

Блог о кодинге, автор Deerua

coding, javascript, css, html, php, jquery, mysql, deerua

Deerua about Coding

 Избранное

 Самые комментируемые за всю историю

 199 заметок ненаглядно

 Архив за 2010, 2009, 2008  год


Сентябрь 2009
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

 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) );
}

Адрес для трекбеков: http://deer.org.ua/2009/09/06/1/ping/

 3 комментария

 Теги: javascript   expression

Ctrl
Одноразовый и Кэшируемый expression в ИЕ (lte 7)
Нужно создать сайт на 1С-Битрикс(Bitrix)?
Работает на движке e2 Selecta * All sources code was highlighted with w3club Highlighter.
deer.org.ua © 2008—2010 Vitaliy Bogdanets Deerua