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.