Macromedia Dreamweaver MX

Введение в Web-сценарии

Зачем нужны сценарии? Чтобы преодолеть ограничения HTML. Не все, ко­нечно, — только одно.

Ограничения HTML

Так в чем же ограничивает нас HTML? Зачем понадобилось придумывать еще один язык? Нельзя ли обойтись без него?

В общем, можно. Обходились же мы на протяжении целых одиннадцати глав обычным HTML, и ничего! Но дело в том, что странички-то мы делали неинтерактивные, т. е. не взаимодействующие с пользователем, не меняю­щие свое содержимое в ответ на его действия. Для таких страниц хватит и "чистого" HTML. А как только вы захотите "научить" страницу взаимодей­ствовать с пользователем, т. е. сделать интерактивной, вы сразу упретесь в непреодолимую стену.

А все потому, что HTML не позволяет задать поведение страницы в ответ, скажем, на щелчок мыши по одному из ее элементов. С его помощью зада­ется только ее внешний вид. И этим он в корне отличается от "класси­ческих" языков программирования, описывающих как раз поведение.

Собственно, HTML — и не язык программирования, а язык описания Web - страниц — и не более. Он описывает, как должна выглядеть информация в окне Web-обозревателя, только и всего. Причем, этот внешний вид жестко стандартизирован; Web-дизайнер, как вы уже поняли, значительно сильнее ограничен в своих возможностях, чем дизайнер-полиграфист. Особых воль­ностей на Web-страницах он не сделает. (Фреймы, таблицы разметки и кас­кадные таблицы стилей CSS снимают многие ограничения, но не все.)

Конечно, такие ограничения обусловлены благой целью — обеспечением совместимости и единообразия внешнего вида страниц на любой компью­терной платформе. Но кому нужна совместимость такой ценой!

Вы можете сказать, что любая Web-страница и так является интерактивной, т. к. реагирует на щелчки по гиперссылкам. Но это не интерактивность, а стандартное поведение, заданное HTML. Интерактивность — это когда в ответ на перемещение курсора мыши за ним "бежит" картинка, когда при щелчке на фотографии внизу появляется ее описание, когда прямо на стра­ничке "тикают" цифровые часы. Вот это настоящая интерактивность: в пер­вом и втором случаях страница реагирует на действия пользователя, а в третьем — на события внешней среды. (Здесь под внешней средой подра­зумевается операционная система; работающий в ней системный таймер заставляет идти нарисованные часы.) И обычный HTML не может ее обес­печить.

Чтобы преодолеть этот недостаток "чистого" HTML, были придуманы два пути.

Первый путь — это специальные, как правило, нестандартные, "фирмен­ные", теги, расширяющие возможности языка. В подавляющем большинстве случаев они добавляют Web-страницам интерактивные возможности. На­пример, нестандартный парный тег <marquee>. . ,</marquee>, поддерживае­мый Internet Explorer, позволяет создать на странице "прокручивающийся" текст. Но, согласитесь, эти расширения ограничивают Web-дизайнера теми возможностями, что вложили в них разработчики Web-обозревателя. И вы не сможете заставить текст в элементе <marquee> не прокручиваться, а по­следовательно менять цвета — разработчики Internet Explorer этого не пре­дусмотрели.

Мы хотим сами задавать поведение элементов страниц в ответ на действия пользователя. Мы хотим сами контролировать их поведение, держать все нити управления в своих руках. HTML их нам предоставить не может; ог­раничения, обусловленные самой его природой, — стена, преодолеть кото­рую невозможно. Однако, если стену нельзя перепрыгнуть, ее можно обой­ти. Так мы и сделаем.

Web-сценарии

Второй путь — внедрение в HTML-код особых программ, написанных на "классических" языках программирования, т. е. описывающих поведение элементов. Такие программы называются сценариями (или скриптами от англ. script — сценарий). (Почему они так называются? Можете считать, что эти программы описывают сценарии поведения какого-нибудь элемента при наступлении того или иного события.) Эти программы помещаются в HTML-код с помощью особого, специально для такого случая стандартизи­рованного комитетом WWWC парного тега <script>. . ,</script>. Web - обозреватель, "расшифровывая" такой HTML-код, читает сценарии и либо выполняет их сразу же, либо "откладывает в долгий ящик", чтобы выпол­нить после наступления какого-либо события.

Именно после "открытия" второго пути в интерактивность Всемирная пау­тина стала "живой", а многие Web-дизайнеры стали по совместительству еще и Web-программистами.

Для того чтобы писать сценарии, были специально созданы несколько язы­ков программирования, называемых языками написания сценариев (или скриптовыми языками). Наибольшую популярность из них получили всего два: JavaScript и VBScript.

Язык JavaScript был разработан в фирме Netscape на основе известного "классического" языка программирования Java. Поэтому впервые поддержка языка JavaScript появилась именно в Web-обозревателе Netscape Navigator 2.0. Microsoft Internet Explorer начал поддерживать JavaScript с версии 3.0. Кроме того, в фирме Microsoft был разработан свой диалект JavaScript под назва­нием JScript, отличающийся от "прародителя" только наличием нескольких новых команд. Поэтому эти два языка очень часто не различают, называя их одинаково — JavaScript.

Язык VBScript был разработан в Microsoft в качестве "адекватного ответа" на JavaScript. Этот язык поддерживается только Internet Explorer, начиная с версии 4.0. Из-за своей "несовместимости" VBScript не получил большого распространения в Web, но завоевал прочные позиции в серверном про­граммировании, а именно, написании активных серверных страниц Micro­soft ASP (см. главу 15). В настоящее время для написания Web-сценариев он практически не применяется.

Кроме JavaScript и VBScript, были попытки использования для написания Web-сценариев языков Perl, Python и некоторых других. Однако сколько - нибудь широкого распространения эти языки не получили.

В настоящее время практически везде для написания сценариев применяет­ся язык JavaScript. Он достаточно прост для изучения и предоставляет раз­работчику весьма обширные возможности. Кроме того, написанные на нем программы невелики по объему, что актуально в эпоху безраздельного гос­подства медленных каналов связи.

Для поддержки языка сценариев используется так называемый интерпрета­тор (или виртуальная машина) языка. Web-обозреватель выделяет сценарии из HTML-кода страницы и передает его на выполнение интерпретатору. Последний анализирует код сценариев, расшифровывает их и выполняет, передавая результат выполнения обратно Web-обозревателю.

Для каждого языка написания сценариев, поддерживаемого ¥еЬ-обозре - вателем, нужен свой отдельный интерпретатор. Благодаря такому подходу Web-обозреватель можно "научить" поддерживать сценарии, написанные практически на любом языке программирования, если для этого языка су­ществует интерпретатор, написанный определенным образом.

Языки сценариев называются интерпретируемыми, т. к. написанные на них программы расшифровываются при каждом выполнении. Этим они корен­ным образом отличаются от компилируемых языков (C++, Pascal, Java и многих других). Написанные на компилируемых языках программы рас­шифровываются однократно и преобразуются в машинный код, который выполняется самим процессором компьютера, без помощи интерпретатора. Для такого преобразования используются специальные программы, назы­ваемые компиляторами. Конечно, откомпилированный код выполняется значительно быстрее, но специфика Web-программирования такова, что в нем могут применяться только интерпретируемые языки.

Ну, вот и все о языках программирования, на которых пишутся Web - сценарии. Теперь поговорим о том, как эти Web-сценарии выполняются.

События

Событие в системе происходит при наступлении некого условия, внешнего или внутреннего. В зависимости от того, внутри или вне системы наступило это условие, различают внешние и внутренние события. К внешним событи­ям относятся щелчок мышью на странице или ее элементе, перемещение курсора мыши, нажатие клавиши на клавиатуре, изменение размеров окна Web-обозревателя и т. п. Внутренние события — это завершение загрузки Web-страницы, очередной "тик" системного таймера и т. п. Эта классифи­кация событий сделана только для удобства обучения начинающих про­граммистов, ведь с точки зрения языка сценариев оба вида событий между собой не различаются и обрабатываются одинаково.

Если брать во внимание только события, происходящие в Web-странице, то нужно иметь в виду, что события могут происходить как в самой странице, так и в отдельных ее элементах. В самом деле, если пользователь щелкает мышью на части страницы, не занятой какими-либо элементами, говорят, что событие происходит в самой странице. Если же пользователь щелкнет на графическом изображении или текстовом абзаце, событие происходит в этом графическом изображении или текстовом абзаце, т. е. сообщение о наступлении события "щелчок левой кнопкой мыши" в первом случае по­лучит сама страница, а во втором — один из ее элементов.

Что же нам делать с этими событиями, спросите вы? Обрабатывать.

Обработка события заключается в реакции на них. А для реакции на них используются особым образом написанные сценарии, называемые обработ­чиками событий. Обработчики привязываются к тем или иным событиям, происходящим в каком-либо элементе страницы или самой странице. И делается это с помощью особого расширения HTML, специально предна­значенного для поддержки Web-сценариев.

В частности, если требуется, чтобы при наведении курсора мыши на изо­бражение внизу появлялось его краткое описание, нужно сделать следую­щее. Под изображением помещается свободно позиционируемый элемент, содержащий текст описания, и этот элемент делается невидимым. Далее пишутся два сценария, привязанные к событиям, возникающим при наве­дении курсора мыши на графическое изображение и при "уводе" его прочь. Первый из этих сценариев делает элемент с описанием видимым, второй — невидимым. После этого написанные сценарии привязываются к соответст­вующим событиям, происходящим в элементе графического изображения. Вот и все.

Не будем рассматривать конкретные детали реализации этого эффекта. Во - первых, они слишком зависят от выбора языка программирования, а пер­вый (и, кстати, последний в этой книге) сценарий JavaScript мы напишем и изучим в главе 13. Во-вторых, в данный момент требуется анимировать элемент страницы, т. е. заставить его двигаться.

В большинстве интерактивных Web-страниц большая часть сценариев пред­ставляет собой как раз обработчики событий. Именно они реализуют боль­шую часть логики поведения страницы при взаимодействии с пользовате­лем. (Хотя существует определенный процент сценариев, выполняемых сра­зу же после расшифровки; в основном, это код, производящий всяческие предустановки.) Такой подход, когда почти вся программа представляет со­бой обработчики событий, называется событийно-управляемым программиро­ванием.

Но мы отвлеклись. Давайте все же вернемся к нашей анимации. А разговор о программировании продолжим в главе 13, посвященной как раз Web - сценариям и работе с ними в среде Dreamweaver.

Macromedia Dreamweaver MX

Заключение

"А напоследок я скажу..." — поется в старинном русском романсе. Что же мне сказать напоследок?.. Книга о Dreamweaver закончена. Я рассказал об этой программе все, что знал и что мог …

Страницы общего доступа

Страницы общего доступа предназначены для обычных посетителей сайта. Как правило, они создаются после административных страниц; в этом слу­чае вы можете использовать последние как образцы для создания "обычных" страниц. В самом …

Реализация выхода с сайта

Осталось реализовать выход с сайта — и работу над административными страницами можно считать законченной. Как вы помните, каждый посети­тель, вошедший на сайт с разграничением доступа, должен по окончании работы с …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.