DHTML (Dynamic HyperText Markup Language) — язык разметки гипертекста, развитие языка HTML для создания движущихся (динамических) эффектов на Web-страницах. Изначально информация в большинстве Web-документов была статичной. Применение языка Dynamic HTML (DHTML) позволило создавать интерактивные Web-узлы и Web-приложения, не обращающиеся к серверу. Основной отличительной особенностью DHTML от HTML является возможность взаимодействия DHTML-документов с пользователем на клиентском компьютере. Некоторая доля вычислений переносится с сервера на компьютер клиента, что сокращает объем передаваемой информации от клиента серверу и обратно. Страницы, разработанные с использованием технологии DHTML, в отличие от HTML работают значительно быстрее.
Основная идея динамического HTML заключается в полном контроле языка сценариев над всеми без исключения элементами документа, параметрами их оформления и размещения (как подразумеваемыми в HTML, так и задаваемыми с помощью CSS) и даже над самим текстом страницы. Любой элемент HTML-документа сможет двигаться в произвольном направлении, изменять свое форматирование и переписываться как в ответ на действия пользователя, так и по собственной инициативе. Благодаря средствам компоновки данных, разработчики смогут создавать Web-приложения, которые выводят данные на экран в асинхронном режиме и манипулируют ими. Эти функции реализуются средствами стандартного HTML и языков сценариев. Язык сценариев имеет доступ ко элементам документа и способен отслеживать действия пользователя (перемещение мыши, нажатие клавиш). Язык сценариев JavaScript развиваясь, открывал доступ к большому количеству элементов страницы. Противопоставив языку Java технологию ActiveX, корпорация Microsoft не оставила без ответа и JavaScript; браузер Internet Explorer поддерживает два языка сценариев — JScript (аналог JavaScript) и VBScript (производная Visual Basic). Фирма Microsoft предложила объектную модель (DOM), которая обеспечивает средства контроля над элементами документа и их атрибутами: любому элементу документа соответствует объект, доступный из сценария, любой объект способен реагировать на минимум стандартных событий; имеется возможность изменять атрибуты элементов в любой момент времени, при этом браузер отслеживает взаимозависимость элементов; события могут «всплывать» (bubble) по иерархии элементов (например, если для изображения не предусмотрено никакой реакции на щелчок мыши, это событие будет передано выше по иерархии тому элементу, частью которого является данное изображение).
Придать динамику HTML-документу можно с помощью языка иерархических стилевых спецификаций (Cascading Style Sheets, CSS), который принимает на себя часть функций HTML и снимает часть его ограничений. Главная цель CSS — отделить структуру документа от его оформления и позволить автору страницы самому решать, как должен выглядеть тот или иной элемент содержания. CSS не только освобождает от «обязательного» форматирования тех или иных тегов, но и добавляет множество степеней свободы, например, возможность изменения расстояния между строками текста. Расширение языка CSS — подсистема абсолютного позиционирования (absolute positioning) элементов, которая позволяет располагать объект (фрагмент текста, изображение) в произвольной точке плоскости страницы, в том числе с наложением объектов друг на друга (и с указанием, какой должен лежать снизу, а какой — сверху). На стыке двух расширений HTML — языка стилей и языка сценариев — возник набор технологий, который называют «динамическим HTML».
Для упрощения настройки DHTML-страниц в соответствии с вкусами пользователей разрабатываются новые стандарты. Для этого необходимо собрать информацию о пользователе. В этих целях Web-серверы используют cookie-файлы, которые хранятся в серверных базах данных, а исполняются на клиентских машинах. Они позволяют отслеживать доступ пользователей к Web-серверам, регистрировать время их доступа и анализировать запрашиваемую информацию.
Область применения DHTML не ограничивается системой Web. С помощью этого языка можно извлекать информацию из любой СУБД, совместимой с протоколом ODBC, и передавать ее по Интернету. Цель создания стандарта связи с базами данных ODBC — обеспечить доступ к данным из любого приложения, вне зависимости от того, какая СУБД используется для их хранения. Для этого в ODBC применяется программное обеспечение промежуточного уровня, которое носит название драйвера базы данных и служит для связи между приложением и СУБД. Драйвер базы данных преобразует передаваемые приложением запросы в команды, понятные системе управления базы данных. Прикладная программа и СУБД должны поддерживать протокол ODBC, чтобы приложение могло использовать команды ODBC, а СУБД — отвечать на них.