Comments 46
Очень смущают фразы «проприетарная технология микрософт» и «с пятой по седьмую включительно».
Dynamic properties (also called «CSS expressions») are no longer supported in Internet Explorer 8 and later, in IE8 mode and higher. Можно перевести ИЕ8 в режим седьмой или пятой версии, в стандартном режиме рендеринга выражения не сработают
Min-width без JS в IE: www.cssplay.co.uk/boxes/minwidth.html
спасибо, я умею пользоваться гуглом. к несчастью, даже Стю Никколс не нашел решения одновременного max и min-width без экспрешшенов
Есть вариант для IE6 min-witdth сделать через CSS, а max-width — через expression. Либо не делать max-width вовсе и рассказать заказчику почему.
заказчик уже сказал, как ему нужно, и обсуждению это не подлежит — он вправе заказывать все, что ему хочется. ему было много раз предложено и оговорено, с чем придется столкнуться, но он остался непреклонен.
и по-моему обсуждение взаимодействия с закачзиком не сильно стыкуется с темой топика.
и по-моему обсуждение взаимодействия с закачзиком не сильно стыкуется с темой топика.
и по-моему обсуждение взаимодействия с закачзиком не сильно стыкуется с темой топика.
А по-моему, стыкуется. Из вашего же текста:
Ого. И что теперь? Ну их в баню, эти экспрешены, пойду с заказчиком потолкую насчет фикса лучше...
Т.е. вы прямо задаёте как одну из тем — взаимодействие с заказчиком.
Кроме того. Я никогда не верил, что «запоминается только последнее», но данный случай наглядная иллюстрация. Если внимательно перечитать мой коммент, то станет очевидным, что там, кроме взаимодействия с заказчиком, есть ещё предложение.
Или рассказать заказчику еще кучу всего об ИЕ6 и, если повезет, не делать ничего кроме «заглушки» для этого браузера.
Я таки выложил свою эмуляцию habrahabr.ru/blogs/webdev/68917/
«не могу пока раскрыть, чей это сайт»
Хабраэффекта боитесь?
Хабраэффекта боитесь?
А можно подобный замер на IE7?
у меня на машине IETester стоит, не знаю, насколько честными будут эти измерения.
p.s. IE6, в которым производились испытания, «родной» для XP
p.s. IE6, в которым производились испытания, «родной» для XP
Я к чему спрашиваю: IE6, слава богу, потихоньку отмирает, и если вы проведете замер, не важно чем будь то IETester или еще что и опубликуете сравнительный результат, то тогда можно будет говорить о перспективах подобной технологии.
ну, хорошо. вот график для IE7, запущенного из под IETester v0.3.5
<img src=«www.picamatic.com/show/2009/09/07/11/54/4992847_115x133.jpg» width=«115» height=«133>
на все действия, кроме ресайза окна реагирует довольно ровно, на ресайзе как обычно загрузка процессора подскочила.
из чего как будто можно заключить — ИЕ7 ест меньше на пиковой загрузке, однако в рабочих режимах нагружает проц сильней.
еще раз повторюсь — не знаю, насколько можно верить этому графику. ИЕ7 не „родной“.
<img src=«www.picamatic.com/show/2009/09/07/11/54/4992847_115x133.jpg» width=«115» height=«133>
на все действия, кроме ресайза окна реагирует довольно ровно, на ресайзе как обычно загрузка процессора подскочила.
из чего как будто можно заключить — ИЕ7 ест меньше на пиковой загрузке, однако в рабочих режимах нагружает проц сильней.
еще раз повторюсь — не знаю, насколько можно верить этому графику. ИЕ7 не „родной“.
У этой технологии уже нет будущего, M$ в 8-ой версии IE не поддерживают expression
Стоило бы ещё рассказать, что:
— Одноразовые экспрешены (отмена свойства сразу же после выполнения) почти безопасны, но подходят только для единовременных операций, вроде эмуляции генерируемого содержимого или расстановки спец-классов.
— Кешируемые (проверка на необходимость перед выполнением) могут убить, но иногда они единственный способ сделать более-менее сложное поведение.
— Бесконтрольные совершенно чётко убивают IE6
— Одноразовые экспрешены (отмена свойства сразу же после выполнения) почти безопасны, но подходят только для единовременных операций, вроде эмуляции генерируемого содержимого или расстановки спец-классов.
— Кешируемые (проверка на необходимость перед выполнением) могут убить, но иногда они единственный способ сделать более-менее сложное поведение.
— Бесконтрольные совершенно чётко убивают IE6
Для себя «изобрёл» глянув на код примеров такой min-width:
width:expression(function(t){
window.attachEvent('onresize', function()
{
document.body.clientWidth
width:expression(function(t){
window.attachEvent('onresize', function()
{
document.body.clientWidth
И что, прям фигурные скобки работают внутри expression'а? )
Да.
По-сути, внутри expression вызывается attachEvent с анонимной функцией(или как там это правильно называется). Это то же самое, что создать обработчик с осмысленным именем, а после 'onresize' передать его имя.
Проверил в IE6 (Browser Sandbox, IETester). Работает.
P.S. Вычитал про возможные утечки памяти, которые лечатся снятием обработчиков на onunload, либо отказом от анонимных функций, то есть attachEvent('...', funcName); function funcName(){...}
По-сути, внутри expression вызывается attachEvent с анонимной функцией(или как там это правильно называется). Это то же самое, что создать обработчик с осмысленным именем, а после 'onresize' передать его имя.
Проверил в IE6 (Browser Sandbox, IETester). Работает.
P.S. Вычитал про возможные утечки памяти, которые лечатся снятием обработчиков на onunload, либо отказом от анонимных функций, то есть attachEvent('...', funcName); function funcName(){...}
Про утечки в IE: htmlcoder.visions.ru/Javascript/?29
Спасибо, я Вас поправлю только:
htmlcoder.visions.ru/Javascript/?29
htmlcoder.visions.ru/Javascript/?29
Гм… а почему фигурные скобки не должны работать внутри expression?
Наверное потому, что это происходит внутри других фигурных скобок,
что, как мне казалось, вызывает проблемы парсинга.
…но если работает — почему нет.
что, как мне казалось, вызывает проблемы парсинга.
#box { width: function() {…} }
…но если работает — почему нет.
если это будет в общем файле стилей, есть вероятность, что остальные браузеры неадекватно воспримут фигурные скобки.
Насколько я помню, если не указывать DOCTYPE у документа, то у expression'ов появляются проблемы с интерпретацией JS-кода (как раз на скобках сыпется). Но есть и обратный эффект: некоторый код может нормально работать в IE6 без доктайпа, но не работает с ним, хотя скобок нет.
Я даже допиливал различные решения из Техногрета под работы с доктайпом :)
Я даже допиливал различные решения из Техногрета под работы с доктайпом :)
Ой, как плохо-то, парсер съел код.
pastebin.ca/1556962
pastebin.ca/1556962
ресайз — тяжёлая операция независимо от экспрешшенов и браузеров. и редкая. остальные действия не особо и тормозят…
Sign up to leave a comment.
Производительность CSS Expressions