Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_Сетевые технологии.doc
Скачиваний:
6
Добавлен:
09.11.2018
Размер:
1.02 Mб
Скачать

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

Во-первых, в обоих примерах использовалось расширение .asp, поэтому интерпретатор сценариев обрабатывает код на стороне сервера.

Наша web-страница содержит HTML, обычный текст и небольшой сценарий на стороне сервера. В первом случае задан сценарий, который будет обрабатываться на сервере до того, как страница будет отправлена браузеру:

<P>Today’s date is

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

Response.Write Date

</SCRIPT>

, and this is the next example.

Строка Response.Write Date означает, что время будет вычислено и записано в HTML-поток. Но почему же дата появится в конце страницы, а не после Today’s date is?

Причина в следующем. Когда web-сервер встречает тег <SCRIPT RUNAT=SERVER>, он обрабатывает сценарий, но результат добавляется в конец HTML-потока. Другими словами, положение тега <SCRIPT> относительно других элементов страницы не учитывается.

Е

<P>Today’s date is

<%Response.Write Date%>

, and this is the next example.

сли эту же команду записать внутри ASP-тегов, все встанет на свои места:

Важно следующее: не все теги имеют одинаковый приоритет – одни обрабатываются раньше других в зависимости от того, как они были определены в исходном тексте.

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

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

  1. С

    <HTML>

    <HEAD>

    <TITLE>Writing the Current Date to a Document with Client-side VBScript</TITLE>

    </HEAD>

    <BODY BGCOLOR=WHITE>

    <H2>Date Confirmation</H1>

    <P>Today’s date is

    <SCRIPT LANGUAGE=VBSCRIPT>

    <!--

    Document.Write Date

    -->

    </SCRIPT>

    , and this is the third example in Chapter 2.

    </BODY>

    </HTML>

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

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

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

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

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

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

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

В

<SCRIPT LANGUAGE=VBSCRIPT>

</SCRIPT>

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

Document.Write Date

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

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

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

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

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