Пластичный WEB
Олег
ДОВБНЯ
Дом
Книги
Любой
разработчик Web-страницы - и
профессионал, и любитель -
рано или поздно осознает,
что возможности языка
гипертекстовой разметки (HTML)
не могут реализовать все его
творческие задумки.
Например, как заставить сайт
"откликаться" на
действия пользователя,
изменяться в зависимости от
времени года, суток, то есть
стать "динамическим"? А
вот благодаря технологии
Dynamic HTML (DHTML), вы сможете
сделать активной любую
часть Web-страницы.
Возникает,
естественно, вопрос: "С
чего же начать?". В первую
очередь, необходимо
представлять, что же такое
HTML, - тут вам помогут
учебники. Например, для
первого знакомства подойдет
"Учебник по HTML" (http://www.magnit.net/master/),
а дополнит и расширит ваши
познания "Справочник
начинающего по HTML"
www.dov.narod.ru
(http://virtlib.odessa.net/books/book/0001.htm).
Теперь смело приступайте к
изучению технологии DHTML,
которая предполагает
использование языков
написания сценариев:
например, JavaScript и VBScript.
Каждый из них имеет свои
достоинства и недостатки.
Благодаря простоте и
совместимости (его "понимают"
как Internet Explorer, так и Netscape
Navigator), JavaScript пользуется
большой популярностью.
Элементарную информацию
ищите тут "Введение в
JavaScript для Мага" (автор
- Стефан Кох, http://rtfm.vn.ua/prog/js/jsmag/).
Одновременно по мере
распространения браузера
Microsoft Internet Explorer растет
популярность VBScript - языка,
хотя и не уступающего по
своим возможностям JavaScript,
однако - с весомым
недостатком - он не
обрабатывается некоторыми
браузерами, в частности
Netscape. Собственно, VBScript - это
реализация Visual Basic,
ориентированная на Web,
именно его предпочитает
Microsoft при разработке
документации по DHTML. В общем,
кто знаком с VB или VBA для MS
Office, без труда изучит VBScript,
ведь он базируется на Basic (он
знаком многим со школьной
скамьи и является самым
простым, но и достаточно
мощным языком
программирования). Впрочем,
и тем, кто уже умеет немного
программировать на VB, и
начинающим рекомендуем
статьи "Азбука Visual
Basic" (http://www.cm.f2s.com/).
Так, что же выбрать - JavaScript
или VBScript? По-моему, чтобы
создать хорошо читаемый
обоими браузерами сайт,
желательно использовать оба
языка, тем более, они похожи.
Приведу простой пример.
На VBScript:
<HTML>
<HEAD>
<TITLE>Для обработки
текстового поля использован
VBScript</TITLE>
<!-- Данная страница будет
отображена только в Internet
Explorer. -->
</HEAD>
<BODY LANGUAGE=VBScript onLoad=Page_Initialize
()>
<INPUT TYPE="TEXT"
NAME="Textbox" SIZE="20">
<SCRIPT LANGUAGE=VBScript>
SUB Page_Initialize()
Textbox.Value="Привет от
VBScript!"
END SUB
</SCRIPT>
</BODY>
</HTML>
На JavaScript:
<HTML>
<HEAD>
<TITLE> Для обработки
текстового поля использован
JavaScript</TITLE>
<!-- Данная страница будет
отображена как в Internet Explorer,
так и в Netscape Navigator. -->
</HEAD>
<BODY onLoad = "Page_Initialize()">
<FORM NAME="Form1">
<INPUT TYPE="TEXT"
NAME="Textbox" SIZE="20">
</FORM>
<SCRIPT LANGUAGE = JavaScript>
function Page_Initialize()
{
document.Form1.Textbox.value = "Привет
от JavaScript !"
}
</SCRIPT>
</BODY>
</HTML>
Даже из этого примера
очевидно, что код на VBScript
компактнее и не требует
создания дополнительных
объектов, к тому же, он, в
отличие от JavaScript, не
чувствителен к регистру
символов. Однако последний
"универсален", поэтому,
так как почти каждый пятый
посетитель сайта -
пользователи Netscape, его
нельзя сбрасывать со счетов.
Думаю, вы уже поняли, что
реализации DHTML для Internet Explorer
и Netscape Navigator, двух наиболее
популярных на сегодняшний
день браузеров, различны, и
при создании качественного
дизайна Web-страницы этот
нюанс следует учитывать. Но
в основе использования
любого из языков сценариев
лежит обработка событий,
генерируемых браузером.
Код скрипта должен
располагаться в специальном
контейнере, ограниченном
открывающим (<SCRIPT>) и
закрывающим (</SCRIPT>)
тэгами, как это показано
выше. В простом случае
синтаксис этого тэга
выглядит так:
<SCRIPT LANGUAGE = язык>
</SCRIPT>
Для Internet Explorer допустимы
следующие атрибуты:
<SCRIPT LANGUAGE = язык CLASS =
строка DEFER EVENT = строка
FOR = строка ID = идентификатор
SRC = местонахождение
TITLE = строка TYPE = строка>,
а для Netscape Navigator:
<SCRIPT LANGUAGE = язык SRC = местонахождение>.
Браузеры, не поддерживающие
скрипты, скорее всего,
просто проигнорируют
расположенный между этими
тэгами код. В программах-сценариях
используются встроенные
свойства HTML-элементов. К
примеру, размер поля
находится в свойстве size,
а текст - в value.
Свойств элементов
достаточно много.
DHTML дает возможность в любой
момент изменить Web-страницу,
а также создать формы для
отправки и обработки данных.
Отдельно следует выделить
возможности использования
мыши, в частности следующие
события:
- onMouseDown - событие,
связанное с нажатие кнопки
мыши, "кликом"; для
определения координат
нажатия следует
использовать объект event,
входящий в объект window,
координаты x и y
определяются
соответственно выражениями window.event.x
и window.event.y;
- onMouseOver -
помещение указателя мыши в
область окна документа;
- onMouseOut - курсор мыши
выходит за пределы области
окна документа;
- onMouseMove - перемещение
мыши.
В зависимости от браузера,
методы обработки событий
для мыши сильно различаются.
Но это тема для другого
разговора.
В качестве отклика на эти
события, к примеру, может
быть загружено изображение,
изменен HTML-код или текст
произвольной, определенной
разработчиком, области
страницы.
Если созданы две версии
сайта для различных
браузеров, можно
запрограммировать ту или
иную последовательность
действий, в зависимости от
того, каким приложением
пользуется Ваш гость. Здесь
приведен пример сценария,
Если созданы две версии
сайта для различных
браузеров, можно
запрограммировать ту или
иную последовательность
действий, в зависимости от
того, каким приложением
пользуется Ваш гость. Здесь
приведен пример сценария,
определяющего и выводящего
на экран название и версию
используемого браузера:
<SCRIPT LANGUAGE = JavaScript>
if (navigator.appName == "Microsoft Internet
Explorer")
{
document.write("<H3><CENTER>")
document.write("Вы работаете в
Microsoft Internet Explorer" +
navigator.appVersion)
document.write("</H3></CENTER>")
}
if (navigator.appName == "Netscape")
{
document.write("<H3><CENTER>")
document.write("Вы работаете в
Netscape Navigator" + navigator.appVersion)
document.write("</H3></CENTER>")
}
</SCRIPT>
В Internet Explorer'е обрабатывают
не только элементы
управления, но и любые
объекты Web-страницы. То есть
события, методы и свойства
могут быть добавлены для
каждого тэга, таким образом
в процессе просмотра сайта
меняются значения атрибутов
тэгов. Как это работает на
практике? Допустим, Вы
хотите, чтобы в зависимости
от действий пользователя
изменялся фон или
изображение, служащее фоном,
цвет и размер шрифта,
изображения и их размер, а
также параметры таблиц. С
помощью небольших
подпрограмм на VBScript, - это
достаточно просто. К
сжалению, это не работает
для Netscape Navigator.
Что действительно сделает
Вашу страничку "живой",
так это использование анимированной
графики: изображения
будут вращаться и
перемещаться в заданном
направлении или в
зависимости от действий
пользователя. С помощью
языков JavaScript и VBScript пишутся
даже игры - гарантирую, на
посетителя это произведет
впечатление. Но изобильно
"начиненная" таким
образом страница становится
в лучшем случае
неудобочитаемой, ну а в
худшем, если код не отлажен
разработчиком, выдает
ошибку за ошибкой и
предлагает запустить
отладчик. Поэтому при
использовании многослойной
анимированной графики
соблюдайте меру.
Диалоговые окна,
создаваемые с помощью DHTML,
мало чем отличаются от всем
привычных Windows-приложений.
Они не только выводят
определенную
предупреждающую информацию,
но и используются для
получения информации от
пользователя, например окна
подтверждений, содержащие
две кнопки - "OK"
и "Cancel". С
помощью метода confirm()
можно выяснить, какая кнопка
нажата: если "OK", то
возвращается значение TRUE,
а если "Cancel", то - FALSE.
Дальнейшие действия
определяются сценарием.
Также диалоговые окна
служат для ввода
пользователем определенной
информация, например,
необходимой для регистрации
в качестве подписчика
новостей Вашего сайта.
Благодаря элементу
управления Tabular Data в
Internet Explorer (служит для
доступа к данным), решается
проблема
производительности, столь
актуальная для работы в
Интернете. То есть вся
информация, необходимая для
работы, может быть получена
без дополнительных
обращений к серверу.
Возможности Dynamic HTML не
ограничиваются этим. Даже
беглое с ним знакомство
позволит создать
привлекательные Web-страницы,
добавить компактную
гостевую книгу или чат для
общения с друзьями - то есть
все зависит только от Вашей
фантазии.
Но, к сожалению, чрезмерное
увлечение скриптами может
замедлить доступ к странице,
поэтому лучше использовать
DHTML только, когда
возможностей HTML
недостаточно. Поэтому
приступайте к написанию
сценариев после
основательного знакомства с
языком гипертекста. Помните,
DHTML - отнюдь не замена, а
скорее, дополнение к HTML. Тем,
кто решил освоить DHTML, как
говорится, "с нуля",
рекомендую изданную в 1999
году группой BHV (http://www.bhv.kiev.ua)
книгу Стивен Хольцнера
"Dynamic HTML. Руководство
разработчика", ее
можно приобрести, не отходя
от компьютера (http://www.bookshop.kiev.ua/)
за 12,96, я сам, правда, не
пробовал.
Удачи всем, кто все же
решился создать свой
виртуальный "дом"!