Копия для печати
HTML оживает
Даты выпуска новых программных
продуктов всегда были
естественными вехами в
компьютерной истории. Поэтому
начало последнего этапа войны
между Netscape и Microsoft правильнее всего
датировать концом декабря 1996 года,
когда корпорация Netscape явила миру
первую "предварительную"
версию "Коммуникатора".
Начиная с этого момента, над полем
битвы стоит неумолчная канонада:
каждый месяц конкуренты
выстреливают друг в друга
очередной preview-версией, маневрируя
в попытках нащупать слабые места
противника и спешно подтягивая
обозы с технической документацией.
Как вcегда, важное преимущество в
этой конкурентной борьбе дает
реализация новейших web-технологий.
На сей раз обе стороны весьма
увлеченно размахивают знаменами
"динамического HTML" ("Dynamic
HTML"). Простому обывателю это
новое имя в истории Интернета
неизвестно. Попробуем выяснить, так
что же это все-таки такое?
Страницы истории
Стремлению сделать web-страницу
динамичной и интерактивной столько
же лет, сколько и самому WWW. Первая
версия языка HTML не могла даже
создавать формы с заполняемыми
полями и кнопками. Версия HTML 2.0,
имевшая значительное преимущество
перед предыдущими версиями,
приобрела тем самым известную долю
интерактивности, но все же осталась
статичной.
Первые же попытки преодолеть эту
проблему web-страниц заставили
разработчиков выйти за пределы
языка HTML. Java-апплеты и компоненты
ActiveX - это "почти настоящие"
программы, которые способны на
отведенном им прямоугольнике
web-страницы реализовать любой
нтерфейс, мультимедийные эффекты,
обработку данных и многое другое.
Однако тут встает другая проблема.
Вся беда в том, что эти "островки
динамичности" почти ничем не
связаны с прочим содержимым
страницы и потому вынуждены в
большинстве случаев
ограничиваться лишь декоративными
функциями. У "апплетного"
подхода есть и другие минусы -
необходимость передачи по сети
достаточно крупных по размерам
файлов, сравнительно высокие
требования к быстродействию
компьютера, а также проблемы
безопасности.
Именно поэтому одновременно с
поддержкой языка Java разработчики
Netscape встроили в свой браузер еще
один язык, более простой и гораздо
теснее связанный с HTML, - язык
сценариев JavaScript. Этот язык по своей
роли близок к макроязыкам, которые
с давних пор встраиваются в любую
достаточно сложную программу.
JavaScript-сценарий не замыкается в
изолированном "апплете", а
свободно переплетается и
взаимодействует с HTML-разметкой
страницы. Первая версия JavaScript уже
позволяла, среди прочего, открывать
и закрывать окна браузера,
загружать в них документы,
управлять фреймами и
взаимодействовать с полями
бланков.
Развиваясь, JavaScript открывал
сценариям доступ ко все большему
количеству элементов страницы. С
его помощью стали возможны такие
трюки, как, например, плавное
изменение цвета фона при загрузке
страницы или "живые" меню
(он-маус эффекты), каждый пункт
которых изменяется при подведении
к ним мыши. Пожалуй, именно эти
примеры ближе всего к тому, что
сейчас называется "динамическим
HTML". Microsoft же, противопоставив
языку Java свою технологию ActiveX, не
оставила без ответа и JavaScript;
браузер Internet Explorer на данный момент
поддерживает целых два языка
сценариев - JScript (аналог JavaScript) и
VBScript (родственный языку Visual Basic).
С противоположного фланга на HTML
наступал, принимая на себя часть
его функций и снимая тем самым
часть его ограничений, язык
иерархических стилевых
спецификаций (Cascading Style Sheets, CSS),
главная цель которого - отделить
структуру документа от его
оформления и позволить web-мастеру
самостоятельно решать, как должен
выглядеть тот или иной элемент
содержания.
Именно на стыке этих двух
расширений HTML - языка стилей и языка
сценариев - и возник тот набор
технологий, который ныне в
"высших слоях Internet-общества"
принято называть "Dynamic HTML".
В чем суть DHTML?
Основную идею динамического HTML
можно сформулировать довольно
просто: полный контроль языка
сценариев над всеми без исключения
элементами документа, параметрами
их оформления и размещения (как
подразумеваемыми в HTML, так и
задаваемыми с помощью CSS) и даже над
самим текстом страницы. Благодаря
этому любой элемент HTML-документа
сможет двигаться в произвольном
направлении, как угодно изменять
свое форматирование и буквально
переписываться - как в ответ на
действия пользователя, так и по
собственной инициативе.
Основная особенность
"динамического HTML"
заключается в том, что его
составляют подсистема абсолютного
позиционирования элементов. Это
расширение языка CSS позволяет
располагать любой объект в
произвольной точке плоскости
страницы, в том числе с наложением
объектов друг на друга. Само
позиционирование не содержит в
себе ничего особенно
динамического, но без него было бы
невозможно реализовать многие из
самых впечатляющих визуальных
эффектов динамического HTML.
Эта составляющая новой
технологии - единственная,
реализованная более или менее
совместимым образом в обоих
браузерах. И хотя качество и
полнота реализации этого стандарта
оставляют желать лучшего (особенно
у браузера Netscape, который в версии 3.0
вообще не имел поддержки CSS), эту
технологию уже можно применять, не
боясь ограничить свою аудиторию
пользователями лишь одного из
браузеров-конкурентов.
Другая группа нововведений,
составляющая ядро DHTML, расширяет
язык сценариев, открывая ему доступ
ко всем элементам документа и
наделяя способностью отслеживать
любые действия пользователя
(перемещение мыши, нажатие клавиш и
т.п.). Здесь, к сожалению,
совместимостью между
конкурирующими реализациями уже и
не пахнет.
Разница в подходах двух гигантов
Internet-рынка, как всегда, отражается в
терминологии. Netscape расширила JavaScript
новыми объектами и сравнительно
развитыми средствами работы с
событиями, а средства доступа из
JavaScript к стилевым спецификациям
вынесла в отдельный модуль,
называемый "JavaScript Accessible Style
Sheets" (JASS). Microsoft же, не замыкаясь ни
на каком-то конкретном языке
сценариев, ни на стилевых
спецификациях (без которых
динамический HTML, строго говоря,
может и обойтись), называет ядро
своей технологии "объектной
моделью документа".
Пожалуй, впервые за всю историю
конкурентной борьбы двух фирм
объективный наблюдатель может без
натяжек и оговорок признать, что
одна из них далеко превзошла другую
в полноте, элегантности и даже
законности реализации одной и той
же идеи. Объектная модель Microsoft
обеспечивает значительно более
богатые и гибкие средства контроля
над элементами документа и их
атрибутами.
Наконец, еще одна группа
объединяет несколько разнородных
нововведений, имеющих лишь
косвенное отношение к собственно
динамическому HTML. Netscape к этой
группе относит поддержку
"динамических шрифтов". Это
новшество позволяет ссылаться из
HTML-документа на файл шрифта в
формате TrueDoc (с расширением.prf).
Указав URL-адрес файла шрифта, автор
может пользоваться этим шрифтом
для оформления текста на странице;
браузер же, встретив ссылку на
шрифт, поступит с ним так же, как и с
любой графической информацией,
просто загрузив ее из Сети и
положив в свой кэш для
использования на этой и
последующих страницах.
Со стороны Microsoft основным
дополнением к динамическому HTML
служит система "связи с
данными". Встроив в свой документ
особый управляющий элемент ActiveX,
называемый "источником
данных", вы сможете генерировать
и изменять текст HTML-таблиц на вашей
странице на основе информации из
какой-либо базы данных, доступной
через Сеть. Взаимодействие с базой
данных берет на себя компонент ActiveX,
а HTML-код вашей страницы (в
сотрудничестве с языком сценариев)
позволяет реализовать, к примеру,
сортировку и фильтрацию таблиц без
обращения к базе данных, их
динамическое обновление, а также
перенос информации из таблицы в
текст или поля бланков.
А что делать простому обывателю?
Появление двух столь резко
различающихся реализаций DHTML
ставит web-дизайнеров и
программистов перед нелегким
выбором. Преимущества технологии
Microsoft вряд ли окажут заметное
влияние на предпочтения
пользователей, так что "битва
титанов" пока лишь начинается и
двоевластие браузеров еще долго
будет оставаться реальностью. В
области динамического HTML, как мы
видели, это двоевластие
оборачивается резким ограничением
тех возможностей, которыми можно
пользоваться без серьезного уклона
в сторону одного из конкурентов.
В то же время многие различия
между этими версиями не поддаются
никакому рациональному объяснению
- дело в том, что попросту
"по-другому оно не работает",
хотя по всем правилам и должно бы.
Как уже не раз случалось, желание
быть первым с новой технологией
заставляет конкурентов выдавать
как можно скорее удивительно сырые,
практически не тестировавшиеся
программные продукты.
Что ж, простому обывателю совсем
нелегко сделать свой выбор и
перейти на сторону одного из
гигантов компьютерной индустрии...
Впрочем, как хорошо известно,
широкая конкуренция всегда выгодна
потребителю, а значит - будем ждать
продолжения битвы!
Виталий ФРИДМАН,
Vit_Friedman@softhome.net,
www.kv.minsk.by/belhome
Автор выражает признательность
за информационную поддержку
Дмитрию Кирсанову.
Обсуждение статьи (записей: 0)