Заметил такую штуку.
Когда мне в резиновой верстке надо ввести минимальный размер окна для IE - да умер бы он побыстрее. То я пользуюсь всегда вот таким хаком.
<!--[if IE]>
<style type="text/css">
body {
width:expression( documentElement.clientWidth < 980 ? (documentElement.clientWidth == 0 ? (body.clientWidth < 985 ? "980" : "auto") : "980px") : "auto" );
}
</style>
<![endif]-->
Ну и вот. Если страница берется из кеша, то хак перестает работать. Если кеш почистить и кешируемость отключить - то все хорошо - хак работает. Кто-то понимает почему так происходит? Пожалуйста объясните.
Напишут же люди...
Какого кэша? Если браузера, то вопрос не сюда, а если кэш MODx, то получается, что при кэшировании некоторые части HTML-кода пропадают? Тогда нужно искать, как эти части генерируются, может сниппет неправильно при кэшировании работает. Или HTML-код остается неизменным, но браузер неверно работает? В этом случае опять вопрос не по MODx.
Уже не первый раз люди связывают вопросы генерации кода и отображения этого кода в браузере. Ну смотрите все же на HTML-код, получаемый от MODx, а не на результаты работы браузера. Все, что связано с преобразованием шаблонов, чанков и сниппетов в код, относится к MODx, а все, что связано с отображением конкретного кода в браузере, к MODx никак не относится.
-
☆ A M B ☆
- 1,086 Posts
Quote from: AKots at Apr 09, 2008, 04:34 AM
Напишут же люди...
Какого кэша? Если браузера, то вопрос не сюда, а если кэш MODx, то получается, что при кэшировании некоторые части HTML-кода пропадают? Тогда нужно искать, как эти части генерируются, может сниппет неправильно при кэшировании работает. Или HTML-код остается неизменным, но браузер неверно работает? В этом случае опять вопрос не по MODx.
Думаю все же здесь имелся ввиду кеш MODx.
Quote from: AKots at Apr 09, 2008, 04:34 AM
Уже не первый раз люди связывают вопросы генерации кода и отображения этого кода в браузере. Ну смотрите все же на HTML-код, получаемый от MODx, а не на результаты работы браузера. Все, что связано с преобразованием шаблонов, чанков и сниппетов в код, относится к MODx, а все, что связано с отображением конкретного кода в браузере, к MODx никак не относится.
Абсолютно верно, добавить просто нечего.
Разработка сайтов и программных модулей на MODX.
Опыт работы на MODx с 2005 года. Высокое качество.
Компания Baltic Design Colors:
http://www.bdcolors.ru.
Конечно , я про кэш МОDx )))
И исходный код кэшируемой MODx[ом] страницы (если смотреть через браузер исходный код страницы) не отличается от не кэшируемой MODx[ом] страницы. Однако хак для IE6, который в условных операторах, если страница кэшируется MODx[ом] - перестает работать (в IE6), при этом этот хак корректно работает (в IE6) если страница не кешируется MODx[ом].
Отсюда проcьба - если кто понимает с чем это может быть связано, поделитесь, пожалуйста - так как ни жить-ни быть надо ограничить минимальную ширину верстки, а откэширования отказываться не охото. Да и просто интересно.
PS Да. Хак в условных операторах просто вставляется в хедер шаблона. Хак в чанк не оформлен
Quote from: ikarushka at Apr 09, 2008, 08:04 AM
И исходный код кэшируемой MODx[ом] страницы (если смотреть через браузер исходный код страницы) не отличается от не кэшируемой MODx[ом] страницы.
Забудьте про MODx – он сгенерировал код, все остальное к нему не относится. Если два абсолютно одинаковых кода полученных из интернета выполняются по-разному в браузере на вашей машине, то при чем тут особенности работы программы на PHP, работающей на сервере?
А вообще-то, скорее всего, коды получаются не совсем одинаковые.
Проблема не в MODx оказалась. AKots - прав. Перенастроил хак на другую минимальную ширину (взял на 20px шире) и все заработало и если кешируется страница и если нет. Почему была такая разница между кешируемой и некешируемой страницами при прежних значенениях так и осталось не понятным
А вот за это спасибо!
Это я щас буду читать, а то этот хак не надежный - постоянно меня подводит.
Можно загнать вывод куска html-кода в сниппет и прописать в шаблон без кеширования.
Правда это +1 вызов к мускулу.