- •Глава 1. Структура и синтаксис xml-документа 3
- •Глава 2. Дизайн документов xml 13
- •Глава 3. Xsl 23
- •Глава 5. Типы элементов ввода asp 45
- •Глава 6. Структуры управления asp 55
- •Глава 1. Структура и синтаксис xml-документа Практикум 1_1. Первый xml-документ
- •Практикум 1_2. Использование dtd для описания xml-документа
- •Практикум 1_3. Атрибуты
- •Практикум 1_4. Ссылки на символы
- •Практикум 1_5. Ссылки на сущности
- •Глава 1. Структура и синтаксис xml-документа 3
- •Глава 2. Дизайн документов xml 14
- •Глава 3. Xsl 25
- •Глава 5. Типы элементов ввода asp 48
- •Глава 6. Структуры управления asp 58
- •Глава 2. Дизайн документов xml Практикум 2.1. Визуализация первого xml-документа, используя внутреннюю таблицу стилей
- •Практикум 2. Визуализация первого xml-документа, используя внешнюю таблицу стилей
- •Практикум 3. Приоритеты между внешними и внутренними таблицами стилей
- •Практикум 3. Атрибуты
- •Практикум 4. Ссылки на символы
- •Практикум 5. Ссылки на сущности
- •Глава 1. Структура и синтаксис xml-документа 3
- •Глава 2. Дизайн документов xml 14
- •Глава 3. Xsl 26
- •Глава 5. Типы элементов ввода asp 48
- •Глава 6. Структуры управления asp 58
- •Глава 3. Xsl Практикум 3.1. Трансформация первого xml-документа
- •Практикум 3.3. Язык xPath в действии
- •Первый asp-пример Практикум Punctual Web Server
- •Как это работает
- •Практикум сценарий на стороне сервера
- •Как это работает
- •Практикум – vbScript-сценарий на стороне клиента
- •Как это работает
- •Порядок выполнения
- •Практикум – порядок выполнения
- •Глава 1. Структура и синтаксис xml-документа 3
- •Глава 2. Дизайн документов xml 14
- •Глава 3. Xsl 26
- •Глава 5. Типы элементов ввода asp 49
- •Глава 6. Структуры управления asp 59
- •Глава 5. Типы элементов ввода asp Практикум 5.1. Кнопки
- •Практикум 5.2. Текстовые поля
- •Практикум 5.3. Списки
- •Практикум 5.4. Переключатель radio button
- •Практикум 5.5. Флажок checkbox
- •Практикум 5.6. Создание анкеты приема на работу
- •Глава 1. Структура и синтаксис xml-документа 3
- •Глава 2. Дизайн документов xml 14
- •Глава 3. Xsl 26
- •Глава 5. Типы элементов ввода asp 49
- •Глава 6. Структуры управления asp 60
- •Глава 6. Структуры управления asp Практикум 6.1. Кнопки в действии
- •Практикум 6.2. Пример обработки некоторого текста
- •Практикум 6.3. Обработка списков, используя структуру перехода
- •Практикум 6.4. Обработка результатов переключателя radio button структурой перехода If Then Else
- •Практикум 6.5. Обработка элемента флажок checkbox
- •Практикум 6.6. Обработайте созданную вами анкету используя приемы рассмотренные в этом практикуме
Как это работает
Во-первых, в обоих примерах использовалось расширение .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.
Важно следующее: не все теги имеют одинаковый приоритет – одни обрабатываются раньше других в зависимости от того, как они были определены в исходном тексте.
Практикум – vbScript-сценарий на стороне клиента
Вспомним пример для сценария на стороне сервера – мы проставляли текущую дату в HTML-документе. Сделаем то же самое для сценария на стороне клиента.
-
С
<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>
оздайте новый файл с помощью текстового редактора. Введите следующий текст: -
Сохраните файл DateConf3.htm в каталоге \Inetpub\wwwroot\BegASP. Этот файл имеет расширение .htm, а не .аsp, так как ASP в данном примере нет.
-
Откройте 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>
Document.Write
Date
Интерпретатор сценариев VBScript выполняет встроенную функцию Date, которая возвращает значение, содержащее текущую дату. Кроме того, объект Document получает указание использовать метод Write для отображения даты как части страницы.
В данном случае объект Document является точным представлением HTML-документа или web-страницы, которую в настоящий момент вы видите в окне браузера. Однако объект Document не имеет отношения к ASP, он создается браузером и хранится на стороне клиента. Его можно использовать в динамическом HTML для получения информации о документе, анализа и модификации элементов HTML и текста документа, а также для обработки результатов.
Что произойдет, если мы попытаемся выполнить такой сценарий с помощью браузера, который не поддерживает VBScript? Для примера возьмем Netscape Communicator 4.6
Браузер распознал теги комментариев и определил, что он не может их обработать – поэтому они были проигнорированы. Сообщение об ошибке не появилось, т.е. никаких проблем при загрузке не возникло. Если сценарий VBScript выполняет задачи, не относящиеся ко всей странице (например, динамическую графику), пользователь может и не заметить, что что-то не так. Однако если задача имеет значение для всей страницы (как в данном случае), желаемого результата не будет.