Динамические выражения

Динамические выражения

CSS-выражения позволяют не только вычислить CSS-свойство при объявлении стилей, но и поддерживать его постоянно в актуальном состоянии, чтобы заданное выражение было всегда верно. Это означает, что само выражение будет пересчитываться каждый раз, когда (это касается только рассмотренного примера) изменяется document.body.offsetWidth. Если бы не этот факт, динамические выражения, возможно, принесли бы большую пользу и получили бы более широкое распространение. Но это не так, и пересчет этой строки происходит каждый раз, когда заканчивается вычисления JavaScript. И не нужно быть гением, чтобы понять, что это приведет наше веб-приложение к «подвисанию».

Давайте рассмотрим следующий блок CSS-кода:

#myDiv {

border: 10px solid Red;

width: expression(ieBox ? "100px" : "80px");

}

Даже при том предположении, что ieBox — это постоянный флаг, который выставляется в true, когда IE находится в режиме обратной совместимости, заданное выражение будет вычисляться каждый раз в "80px". Хотя выражение будет постоянным для данной страницы, оно все равно будет пересчитываться много раз. Основной вопрос заключается в том, как избавиться от этих ненужных вычислений.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Динамические компоновочные блоки

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Динамические компоновочные блоки Как видите, процесс создания сложного приложения .NET непосредственно в CIL оказывается довольно трудоемким. С одной стороны, CIL является чрезвычайно выразительным языком программирования, позволяющим взаимодействовать со всеми


Динамические массивы

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Динамические массивы Очень простой пример…Const MaxBooleans = (High(Cardinal) – $F) div sizeof(boolean);Type TBoolArray = array[1..MaxBooleans] of boolean; PBoolArray = ^TBoolArray;Var B: PBoolArray; N: integer;BEGIN N:= 63579; {= получение памяти под динамический массив.. =} GetMem(B, N*sizeof(boolean)); {= работа с массивом… =} B^[3477]:= FALSE; {= возвращение памяти в


Лекция 8. Динамические структуры: объекты

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Лекция 8. Динамические структуры: объекты В предыдущей лекции отмечалось, что экземпляры классов называют объектами. Настало время переключить внимание на эти объекты, и в общем смысле - на модель ОО-вычислений времени выполнения. В предыдущих лекциях рассматривались в


Динамические псевдонимы

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Динамические псевдонимы Для x и y ссылочного типа при непустом значении y присваивание x := y или соответствующее присоединение в результате вызова приведут к тому, что x и y будут присоединены к одному и тому же объекту. Рис. 8.23.  Разделение как результат присоединенияВ


Статические и динамические библиотеки

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Статические и динамические библиотеки Самый непосредственный способ построения любой программы — это объединение исходных кодов всех функций, их компиляция и компоновка всех необходимых элементов в один исполняемый модуль. Чтобы упростить процесс сборки, такие


1.4. Динамические аспекты Ruby

Из книги Справочник по CSS автора Коллектив авторов

1.4. Динамические аспекты Ruby Ruby — динамический язык в том смысле, что объекты и классы можно изменять во время выполнения. Ruby позволяет конструировать и интерпретировать фрагменты кода в ходе выполнения статически написанной программы. В нем есть хитроумный API отражения,


11.3. Динамические механизмы

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

11.3. Динамические механизмы Скайнет осознал себя в 2:14 утра по восточному времени 29 августа 1997 года. Терминатор 2, Судный День Многие читатели имеют опыт работы со статическими языками, например С. Им я адресую риторический вопрос: «Можете ли вы представите себе написанную


Динамические фильтры

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Динамические фильтры Barn()Создает эффект "открывающейся и закрывающейся двери".Здесь sProperties - строка, содержащая один или несколько свойств, задающих поведение фильтра.АтрибутыСвойстваЗадает или возвращает признак разрешения применения фильтра.Задает или возвращает


20.3. Динамические параметры ядра

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

20.3. Динамические параметры ядра Файлы в каталоге /proc — это на самом деле информационные каналы, реализующие интерфейс между ядром и прикладными программами. Они разработаны для повышения гибкости ядра, позволяя системному администратору корректировать его поведение


Новые динамические массивы

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Новые динамические массивы В Delphi 4 компания Borland ввела динамические массивы - расширение языка, которое позволило использовать массивы, размер которых на этапе программирования не известен. Код, вносимый компилятором в приложение, аналогичен тому, который используется


Динамические параметры

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Динамические параметры Теперь поговорим еще о нескольких параметрах, которые влияют на версию системы Windows. Автор назвал их динамическими, потому что в отличие от параметра ProductSuite, который был рассмотрен выше, эти параметры очень часто проверяются системой — особенно их


Динамические псевдоклассы

Из книги автора

Динамические псевдоклассы Иногда браузеры пользователей изменяют вид элементов HTML-документа после выполнения пользователем некоторых действий. В CSS предусмотрены три псевдокласса для наиболее часто встречающихся действий.•:hover – применяется, когда пользователь с


Динамические эффекты строк и столбцов

Из книги автора

Динамические эффекты строк и столбцов Свойство visibility для элементов строк, групп строк, столбцов и групп столбцов может принимать значение collapse. В результате вся строка или весь столбец не будет отображаться и место, которое бы он занимал, будет доступно для размещения


Динамические диалоговые окна

Из книги автора

Динамические диалоговые окна Динамическими называются диалоговые окна, которые создаются на основе файлов .ui, сделанных в Qt Designer, во время выполнения приложения. Вместо преобразования файла .ui компилятором uic в программу на С++ мы можем загрузить этот файл на этапе