Практикум Punctual Web Server
1.
Откройте новый текстовый файл с помощью текстового редактора Notepad. Запишите следующий код:
2. Сохраните этот код как файл punctual.asp в уже созданном каталоге C:\inetpub\wwwroot\BegASPFiles.
3. Теперь запустите браузер и перейдите к http://my_server_name/BegASP/punctual.asp:
4. Щелкните на Refresh. Показываемое время изменится.
5. Теперь в браузере выберите View | Source (или View | Page Source), чтобы увидеть исходный текст HTML, который сервер отправил браузеру. Результат приведен ниже. Там нет ASP-сценариев – сервер обработал сценарий <% = Time %> и использовал его для формирования HTML, который был жестко закодирован в исходном тексте.
Здесь вы видите HTML, который был оправдан браузеру при обновлении страницы в 12.50:14.
6. Это верно для любого браузера, так как ASP обрабатывается на сервере.
Как это работает
В данном случае во всей программе есть только один блок ASP. Он заключен в теги <% %> в строке
В этой строке содержится команда запустить функцию Time (языка VBScript) на web-сервере, возвращающую серверу текущее время. Если сервер и программа просмотра расположены на разных машинах, время на машинах может не совпадать.
Time не является уникальной функцией ASP, это функция VBScript, запускаемая на сервере.
Нельзя сказать, что в этом примере продемонстрирована динамическая и интерективная работа, однако есть возможность дать серверу задание получить ответ в контексте HTML-страницы. Используя формы HTML и другие инструменты, мы сможем создать более информативный, интерактивный интерфейс с пользователем.
Практикум сценарий на стороне сервера
Разберем первый пример со сценарием.
1.
С помощью любого текстового редактора создайте новый документ. Наберите следующий текст:
2. Сохраните файл как DateConf1.asp в каталоге Inetpub/wwwroot/BegASP.
3. Откройте браузер и введите адрес http://my_server_name?BegASP/DateConf1.asp в адресную строку
Страница содержит нужные нам данные, но не в том порядке: дата находится в конце. Почему это происходит, объясню немного позже.
4.
Теперь создадим новый файл DateConf2.asp. Введем слудующий текст:
5. Сохраните DateConf2.asp. Зайдите в браузер в введите URL http://my_server_name?BegASP/DateConf2.asp. Результат будет очень похожим, но теперь все на месте.
Как это работает
Во-первых, в обоих примерах использовалось расширение .asp, поэтому интерпретатор сценариев обрабатывает код на стороне сервера.
Наша web-страница содержит HTML, обычный текст и небольшой сценарий на стороне сервера. В первом случае задан сценарий, который будет обрабатываться на сервере до того, как страница будет отправлена браузеру:
Строка Response.Write Date означает, что время будет вычислено и записано в HTML-поток. Но почему же дата появится в конце страницы, а не после Today’s date is?
Причина в следующем. Когда web-сервер встречает тег <SCRIPT RUNAT=SERVER>, он обрабатывает сценарий, но результат добавляется в конец HTML-потока. Другими словами, положение тега <SCRIPT> относительно других элементов страницы не учитывается.
Если эту же команду записать внутри ASP-тегов, все встанет на свои места:
Важно следующее: не все теги имеют одинаковый приоритет – одни обрабатываются раньше других в зависимости от того, как они были определены в исходном тексте.