Практикум – VBScript-сценарий на стороне клиента

Вспомним пример для сценария на стороне сервера – мы проставляли текущую дату в HTML-документе. Сделаем то же самое для сценария на стороне клиента.

1.

 
  Практикум – VBScript-сценарий на стороне клиента - student2.ru

Создайте новый файл с помощью текстового редактора. Введите следующий текст:

2. Сохраните файл DateConf3.htm в каталоге \Inetpub\wwwroot\BegASP. Этот файл имеет расширение .htm, а не .аsp, так как ASP в данном примере нет.

3. Откройте Internet Explorer и введите в адресную строку http://my_server_name/BegASP/DateConf3.htm:

Практикум – VBScript-сценарий на стороне клиента - student2.ru

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

Как это работает

Этот файл сохранен с расширением .htm. Если бы мы сохранили его как .asp, одновременно с запросом страницы вызывался бы интерпретатор сценариев ASP. Однако на этой страницы нет ASP-кода, поэтому нам это не нужно.

В предыдущих версиях IIS сервер автоматически посылал страницу на обработку при наличии расширения .asp, что требовало дополнительного времени. IIS 5.0 более интеллектуален, поэтому он сначала проверяет наличие ASP-кода, а только потом, если код есть, отсылает страницу script host. Для этого тоже нужно время, но в этом случае все просто: если ASP-кода нет, файл сохраняется с расширением .htm или .html.

 
  Практикум – VBScript-сценарий на стороне клиента - student2.ru

Все, что содержится на странице – текст, HTML и сценарий на стороне клиента – интерпретируется браузером. Когда этот браузер встречает тег <SCRIPT>, он знает, что нужно послать код соответствующему интерпретатору сценариев. Для ясности мы задали атрибут LANGUAGE:

Практикум – VBScript-сценарий на стороне клиента - student2.ru
Этот атрибут указывает, что содержащийся внутри сценарий написан на VBScript и должен обрабатываться интерпретатором сценариев VBScript:

Интерпретатор сценариев VBScript выполняет встроенную функцию Date, которая возвращает значение, содержащее текущую дату. Кроме того, объект Document получает указание использовать метод Write для отображения даты как части страницы.

В данном случае объект Document является точным представлением HTML-документа или web-страницы, которую в настоящий момент вы видите в окне браузера. Однако объект Document не имеет отношения к ASP, он создается браузером и хранится на стороне клиента. Его можно использовать в динамическом HTML для получения информации о документе, анализа и модификации элементов HTML и текста документа, а также для обработки результатов.

Что произойдет, если мы попытаемся выполнить такой сценарий с помощью браузера, который не поддерживает VBScript? Для примера возьмем Netscape Communicator 4.6

Браузер распознал теги комментариев и определил, что он не может их обработать – поэтому они были проигнорированы. Сообщение об ошибке не появилось, т.е. никаких проблем при загрузке не возникло. Если сценарий VBScript выполняет задачи, не относящиеся ко всей странице (например, динамическую графику), пользователь может и не заметить, что что-то не так. Однако если задача имеет значение для всей страницы (как в данном случае), желаемого результата не будет.

Порядок выполнения

Узнав, что такое сценарии на стороне сервера и на стороне клиента и познакомившись с script host и script engine, мы можем перейти к изучению порядка выполнения.

Наши рекомендации