Введение

Кодирование интерактивных или анимированных веб-сайтов

Динамический HTML, или DHTML, – это термин, который некоторые производители браузеров использовали для описания комбинации HTML, таблиц стилей и клиентских скриптов (JavaScript, VBScript или любых других поддерживаемых скриптов), позволяющей создавать интерактивные и анимированные документы. Применение DHTML было представлено Microsoft с выпуском Internet Explorer 4 в 1997 году.

DHTML позволяет скриптовым языкам изменять переменные в языке описания веб-страницы, что, в свою очередь, влияет на внешний вид и функциональность изначально "статического" содержимого HTML-страницы после её полной загрузки и в процессе просмотра. Таким образом, динамическая характеристика DHTML заключается в том, как он функционирует во время просмотра страницы, а не в его способности генерировать уникальную страницу при каждой загрузке. Динамическая веб-страница – это более широкое понятие, охватывающее любую веб-страницу, генерируемую по-разному для каждого пользователя, при каждом обращении или в зависимости от конкретных значений переменных. Это включает страницы, созданные с помощью клиентских скриптов, и страницы, созданные с помощью серверных скриптов (таких как PHP, Python, JSP или ASP.NET), где веб-сервер генерирует контент перед отправкой его клиенту. DHTML является предшественником Ajax, а страницы DHTML по-прежнему работают на основе запросов/перезагрузок. В модели DHTML взаимодействие между клиентом и сервером после загрузки страницы может отсутствовать; вся обработка происходит на стороне клиента. В отличие от этого, Ajax расширяет возможности DHTML, позволяя странице инициировать сетевые запросы (или "подзапросы") к серверу даже после загрузки страницы для выполнения дополнительных действий. Например, если на странице есть несколько вкладок, подход, основанный только на DHTML, загрузит содержимое всех вкладок, а затем динамически отобразит только активную, в то время как AJAX будет загружать каждую вкладку только тогда, когда она действительно потребуется.

Применение

DHTML позволяет авторам добавлять эффекты на свои страницы, которые сложно достичь иным способом, изменяя модель объектов документа (DOM) и стиль страницы. Комбинация HTML, CSS и JavaScript предоставляет возможности:

Анимировать текст и изображения в документе. Встраивать тикер или другой динамический элемент отображения, который автоматически обновляет содержимое последними новостями, котировками акций или другими данными. Использовать форму для сбора пользовательского ввода, а затем обрабатывать, проверять и реагировать на эти данные без отправки их на сервер. Добавлять кнопки с эффектом наведения или выпадающие меню. Менее распространенное применение – создание браузерных игр. Хотя в конце 1990-х и начале 2000-х годов с помощью DHTML было создано множество игр, различия между браузерами затрудняли этот процесс: многие техники приходилось реализовывать в коде, чтобы обеспечить работу игр на разных платформах. С тех пор браузеры стали сходиться к веб-стандартам, что сделало разработку DHTML-игр более целесообразной. Эти игры можно запускать во всех основных браузерах, а также в настольных и мобильных приложениях, поддерживающих встроенные контексты браузера. Термин "DHTML" в последние годы вышел из употребления, поскольку он ассоциировался с практиками и соглашениями, которые часто плохо работали в разных веб-браузерах. Поддержка DHTML с широким доступом к DOM была внедрена в Internet Explorer 4.0. Хотя в Netscape Navigator 4.0 существовала базовая динамическая система, не все HTML-элементы были представлены в DOM. Когда техники стилизации DHTML стали широко распространены, различная степень поддержки технологий в веб-браузерах затрудняла их разработку и отладку. Разработка упростилась, когда Internet Explorer 5.0+, Mozilla Firefox 2.0+ и Opera 7.0+ приняли общий DOM, унаследованный от ECMAScript. Позже библиотеки JavaScript, такие как jQuery, абстрагировали многие повседневные трудности при манипулировании DOM в разных браузерах, хотя улучшенное соответствие стандартам в браузерах снизило потребность в этом.

Модель объекта документа

DHTML не является самостоятельной технологией; это скорее результат объединения трех связанных и взаимодополняющих технологий: HTML, каскадных таблиц стилей (CSS) и JavaScript. Для обеспечения доступа скриптов и компонентов к функциям HTML и CSS, содержимое документа представляется в виде объектов в программной модели, известной как модель объектов документа (DOM). DOM API является основой DHTML, предоставляя структурированный интерфейс для доступа и манипулирования практически любым элементом документа. HTML-элементы в документе доступны в виде иерархического дерева отдельных объектов, что позволяет исследовать и изменять элемент и его атрибуты путем чтения и установки свойств, а также вызова методов. Текст между элементами также доступен через свойства и методы DOM. DOM также обеспечивает доступ к действиям пользователя, таким как нажатие клавиш и щелчки мышью. Эти и другие события можно перехватывать и обрабатывать, создавая функции-обработчики событий и подпрограммы. Обработчик события получает управление каждый раз, когда происходит определенное событие, и может выполнять любые необходимые действия, включая изменение документа с помощью DOM.