Практика создания динамических Web-узлов
dfc6131b

Оптимизация узла и программ



Оптимизация узла и программ

 


Чаще всего Web-дизайнеры, пользующиеся автоматической генерацией HTML-кода в  пакете MX Studio, жалуются на то, что Fireworks MX и Dreamweaver MX создают программы-заготовки (ugly code). Этим термином они хотят подчеркнуть, что создаваемые программы являются сложными и слишком длинными.
Хорошей иллюстрацией данного высказывания является код, создаваемый другим приложением от Macromedia— Macromedia Director. Это приложение имеет собственный язык управления интерактивностью, называемый Lingo. Если мы хотим переместить головку воспроизведения к определенному кадру фильма, достаточно следующего фрагмента программы на этом языке:

On ExitFrame me Go to Frame 2 End

Эта программа достаточно проста и понятна. Те же, кто мало знаком с приложением Director, могут пользоваться языком Lingo с помощью связывания встроенных в приложение фрагментов кода. Ниже приведен пример вышеописанного действия, реализуемого с помощью фрагмента сгенерированной приложением программы.

on GetBehaviorDescription me return \ "Go To Frame X" & RETURN & RETURN & \ "Moves the playback head to the chosen frame when the user clicks on the sprite" & RETURN & RETURN & \ "Permitted Member Types:" & RETURN & \ "Graphic Members" & RETURN & RETURN & \ "Parameters:" & RETURN & \ "Go to which frame on MouseUp?" end BehaviorDescription on GetBehaviorTooltip me


return \ "Use with graphic members." & \ "Moves the playback head to the specified frame on MouseUp"" end Get BehaviorTooltip

И так далее для остальных 22 строк. А вот фрагмент, выполняющий реальные действия:

on MouseUp me go MyTargetFrame end MouseUp

Эти строки скрыты в самой глубине сгенерированной программы. С первого взгляда кажется, что код избыточен. На самом деле это не так. Можно задать простой вопрос: "Как человек, который не знает языка, может создать команду, переводящую головку к заданному кадру?" Для этого и создается программа, фрагмент которой приведен выше и которая предвидит все потенциальные сценарии.
Вместо того чтобы отвергать код за его избыточность, задайте себе вопрос: "Выполняет ли команда то, что от нее требуется?"
Практически всегда ответ будет положительным. Для клиента самое главное, чтобы программа работала, а избыточен код или нет, его обычно мало волнует. Клиент практически всегда задает разработчику вопрос: "Программа работает?" Редко когда от него вы услышите вопрос о том, как она работает.
Другим аспектом этого вопроса являются объекты, обслуживаемые программой. В их числе специализированные объекты интерфейса, такие как кнопки и ссылки, а также  общий вид дизайна страницы. Здесь фигурирует все тот же вопрос: "Выполняют ли элементы те функции, для которых они создавались?"
Когда же дело доходит до оптимизации, можно принять в расчет три ее уровня.

  •  Статическая. Узел представляет собой набор страниц HTML, использующих языки HTML, JavaScript и др. для реализации своих функций.
  • Динамическая. Узел представляет собой набор шаблонов, в которые информация попадает с помощью программ среднего уровня, таких как ColdFusion. Такие узлы обычно отличаются сложностью, а их оптимизация требует высокого профессионализма программиста.
  •  Косметическая и функциональная. Это — самая простая область процесса, и поэтому странно, что ее часто обходят вниманием при оптимизации узла. Пользователи всегда хотят пользоваться Web-узлом без необходимости постоянного принятия решений. Нет ничего хуже узла, для работы с которым нужно руководство пользователя. Кнопки всегда должны выглядеть как кнопки, а не что-то другое. Ссылки должны быть интуитивно понятны. Общий дизайн страницы должен быть оформлен как шаблон, а часто используемые элементы страницы по необходимости должны быть занесены в библиотеку.
  •  Существует множество способов оптимизации функций узла, а также программ, их реализующих.





Содержание раздела