Dynamic HTML (DHTML) – разновидность популярного языка разметки для создания веб-страниц. DHTML позволяет, по сравнению с традиционным HTML, значительно расширить интерактивные возможности страницы сайта и способы его разметки. На его основе можно даже программировать несложные браузерные игры. DHTML имеет встроенные инструменты JavaScript, таблицу каскадных стилей (CSS) и технологию объектной модели документа (DOM).

Особенность страницы, написанной на Dynamic HTML, в том, что тот или иной запрограммированный элемент можно создавать, удалять, передвигать, осуществлять свободное обтекание графического элемента текстом и многое другое.

События в DHTML

При каждом взаимодействии пользователя с тем или иным интерактивным элементом возникает так называемое событие. При этом само событие может происходить не только при непосредственном воздействии на объект со стороны пользователя, но и со стороны связанного с ним элемента. Например, посетитель нажимает мышью на экранную кнопку, при этом видоизменяется сама кнопка, имитируя нажатие, а также всплывает какая-нибудь картинка-подсказка.

Основные события, наиболее часто реализуемые в DHTML:

  • события для мыши (при перемещении, при наведении, при нажатии, перетаскивание, запрет на выделение и т.д.);
  • события для клавиатуры (при нажатии и отпускании клавиши, только при нажатии, только при отпускании);
  • события при прокрутке;
  • события форм – происходят какие-либо изменения при взаимодействии пользователя с формой заполнения;
  • события документа. Происходят после загрузки страницы, но еще до окончательного ее выведения на экран. Так, например, это происходит при вводе пароля или демонстрации заставки;
  • событие справки или событие помощи – при нажатии на клавишу F1 не происходит загрузка стандартного справочного файла. Вместо этого подгружается своя собственная справочная система или подсказка;
  • события фокуса – когда элемент приводится в действие при наведении мыши, щелчке кнопкой мыши или выделении с клавиатуры.

Аналогом можно считать Java- и Flash-технологии, но при этом DHTML значительно проще в освоении.

Методы DHTML

DHTML использует следующие методы для реализации вышеописанных эффектов:

  • изменение стилей и атрибутов, из которых состоит страничка. При этом все изменения происходят динамически;
  • извлечение и использование данных из сторонних источников для отображения их на страничке;
  • вся информация между рабочими сессиями может сохраняться на машине пользователя;
  • используется технология загрузки шрифтов «на лету»;
  • осуществляется поддержка мультимедийных и прочих визуальных эффектов;
  • возможность встраивания однажды созданных элементов в разные проекты. Таким образом, можно говорить об определенной направленности DHTML в сторону объектного программирования.

Достоинства DHTML

Поскольку классический HTML сегодня практически не развивается, в качестве своеобразной надстройки для него служит DHTML. Но и он не относится к суперсовременным языкам программирования веб-страниц. Так отчего же DHTML до сих пор не вытеснен конкурентами? Тому есть ряд причин:

  • простота изучения в сравнении с конкурентными языками;
  • поддержка практически всеми известными браузерами, в том числе, довольно старыми. Существует целый класс пользователей, по тем или иным причинам не желающих переходить на современное оборудование. Увы, но в старых версиях их браузеры не способны работать в условиях повального распространения скриптов и flash-наполнителей. И тогда на выручку приходит DHTML;
  • для выполнения всех сценариев достаточно лишь один раз загрузить страницу. Интерактивность сохраняется даже в автономном режиме работы;
  • небольшой размер документа в сравнении с Java и Flash;
  • не требуется подключения сторонних плагинов и расширений;
  • высокая конкурентная способность узлов по сравнению со статическими вариантами;
  • «наследием» от HTML является низкое потребление трафика.

Недостатки DHTML

Тем не менее имеет Dynamic HTML и свои минусы:

  • хотя, как уже отмечалось, DHTML поддерживается практически всеми известными браузерами, корректное и одинаковое отображение страниц гарантируется не всегда. Более того, в некоторых операционных системах DHTML не работает вовсе или функционирует со сбоями;
  • при исправлении исходного кода могут возникнуть трудности;
  • DHTML базируется на морально устаревшей технологии HTML.

Перспективы развития

Конечно, в условиях стремительно развивающихся и изменяющихся веб-технологий, что-либо определенное прогнозировать в этом направлении трудно. Но похоже, что DHTML еще очень рано сбрасывать со счетов, несмотря на распространение «флэшей». Так что в дальнейшем можно по-прежнему наблюдать возникновение новых сайтов, основанных на DHTML.