Самоучитель по креативному веб-дизайну. Книга 4, стр.34

VBScript. После того как интерпретатор VBScript вернет результат каждого из

двух вызовов методов Response. write обработчику сценариев, тот добавит воз — вращенный текст в HTML-текст страницы.

Пока не задумывайтесь особо над смыслом различных объектов и методов, которые можно применять в ASP-сценариях — мы еще рассмотрим их в данной

главе. Сейчас достаточно знать, что Response. write — это метод (т. е. вызов фун — кции), с помощью которого можно добавлять текст в HTML-код страницы. Пер —

вый вызов Response. write, добавляет строку в кавычках, приведенную в рассмат — риваемом примере, а второй вызов возвращает текущие дату и время, которые обработчик сценариев передаст в Web-страницу.

Теперь сохраните свою страницу в файле с расширением. asp (что-нибудь

вроде ASP Testi. asp) на Web-cepsepe.

Далее, откройте этот HTML-документ в Web-браузере, и вы увидите страницу,

похожую на приведенную на рис. 11.2.

Обратите внимание, что созданную вами ASP-страницу необходимо получить

с Web-сервера, поддерживающего ASP (наподобие IIS компании Microsoft). (Если Web-сервер не поддерживает ASP-файлы, то он просто перешлет запрошенный документ Web-браузеру без изменений, и браузер отобразит операторы VBScript как обычное содержимое страницы.) И наоборот, Web-сервер с поддержкой ASP

передаст запрошенную вами ASP-страницу (ASP_Testi. asp) обработчику сцена- риев (также выполняющемуся на Web-сервере).

Глава 11. Активные серверные страницы (ASP) 555





Обработчик сценариев, в свою очередь, вызовет интерпретатор сценариев для выполнения операторов встроенного сценария (сценариев) и создания Web-стра —

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

дущем примере, из Web-сервера NVBizNet. com, введите в адресной строке

браузера URL-адрес http://www. NVBizNet. com/HWDTT/ASP_Testl. asp.

Web-страница, которую обработчик ASP-сценариев передает обратно Web-сер — веру, содержит на месте VBScript-операторов HTML-дескрипторы и текст, кото — рые были посланы на обработку интерпретатору VBScript. Исходный код страни — цы, полученный браузером от Web-сервера, можно просмотреть, выбрав пункт меню View | Source (Вид | В виде HTML) в Internet Explorer или View | Page Source (Вид | HTML-код страницы) в Netscape Navigator.

Добавление комментариев в ASP-сценарий

Добавление комментариев в свои ASP-сценарии — отличная привычка. Ком — ментарии игнорируются интерпретатором, но напоминают вам (и рассказывают другим), почему вы написали конкретные части сценария именно так, или что вы вообще хотите сделать с помощью данного сценария. Кроме того, коммента — рии можно использовать при разработке страницы, дабы точно определить, где произошла ошибка, вызвавшая некоторое сообщение. Закомментировав фрагмент

Самоучитель по креативному веб-дизайну. Книга 4, стр.35



HTML and Web Desig n Tip s & Techniques





Нижеследующий код выводит текст на Web-страницу и может

‘ так же легко быть написан и с помощью обычного HTML

1 (вместо использования метода Response. Write)

Response. Write «» ‘ Вывод горизонтальной линии

Response. Write «Дата и время на Web-cepBepe: »

Response. Write (now()) ‘ Функция now() возвращает текущие дату и время

%>

Самоучитель по креативному веб-дизайну. Книга 4, стр.36

которую вряд ли стоит раскрывать посетителю сайта. К счастью, выполнение сценария подключения и запроса к базе на стороне сервера означает, что сервер посылает браузеру лишь отформатированные с помощью HTML-дескрипторов результаты запроса (а не имя пользователя, пароль и текст SQL-запроса на полу- чение информации). Аналогично, если ваша ASP-страница выполняет сценарий, содержащий формулы реализации расчетов или определения цены, то выполне — ние сценария на Web-сервере и передача браузеру лишь результатов вычислений по — зволяет сберечь тайну алгоритмов расчета, держа их подальше от посторонних глаз.



ОбъектыASP

Если кто-то в повседневном разговоре произносит слово объект, то на ум

приходят вещи вроде стола, стула, книги, телевизора, автомобиля и т. д. В «ре —

альном» мире объекты являются предметами, которые можно увидеть, потрогать и/или понюхать. Но в программировании объект (object) — это концептуальная «вещь» наподобие электронной таблицы, Web-документа, пользовательской ин- формации, пользовательской тележки для онлайновых покупок и т. д. Каждый объект имеет набор свойств и методов. Свойства (properties) объекта представля — ют собой атрибуты, описывающие объект или его состояние. Методы (methods) — это действия, которые можно совершить над объектами.

Все ASP-страницы имеют семь встроенных объектов. Поэтому любой сцена — рий, включенный в ASP-страницу, может использовать свойства и методы объек — тов Application, ASPError, ObjectContext, Request, Response, Server И

Самоучитель по креативному веб-дизайну. Книга 4, стр.37

Session. Запоминать названия объектов не обязательно. Нужно лишь помнить, что каждому объекту присущ набор свойств, предоставляющих информацию, свя — занную с объектом, и группа методов, предоставляющих вашим сценариям функ —

циональность определенного типа. Объект Session, например, позволяет отсле — живать и использовать информацию о посетителе и его или ее действиях на страницах сайта во время одного посещения. Объект Request предоставляет дос — туп и возможность работы с информацией (такой как данные, принятые из фор- мы, строка запроса и cookie-наборы), которую браузер посылает Web-серверу в составе HTTP-запроса. В противоположность этому, объект Response позволяет создавать Web-страницу в ответ на запрос браузера.

Когда вы далее в этой главе будете читать советы, вы будете знакомиться со свойствами и методами, принадлежащими каждому из встроенных объектов. Сейчас мы сосредоточим внимание на объекте Response, чтобы получить общее представление, как в сценарии можно применять объекты ASP и их методы.

Самоучитель по креативному веб-дизайну. Книга 4, стр.38

55 8 Глава 11. Активные серверные страницы (ASP)





Передача информации браузеру с помощью метода Response. Write

Когда Web-сервер получает от браузера HTTP-запрос, он в ответ посылает запрошенные данные (т. е. Web-страницу или другой файл), сообщение о пере- направлении или сообщение об ошибке. В теле ответного сообщения содержит —

ся HTML-код, предназначенный для отображения браузером, а в заголовке сооб —

щения находятся директивы и/или информация о содержимом тела сообщения.

Например, если сервер получает HTTP-запрос на доступный ему HTML-доку —

мент, ответ сервера состоит в чтении и пересылке содержимого Web-страницы браузеру. Однако отвечая на HTTP-запрос ASP-страницы, сервер вызывает обра- ботчик сценариев asp. dll, создавая Web-страницу с помощью методов объекта Response. После завершения работы обработчика сценариев сервер читает выход — ные данные объекта Response и пересылает их в виде выходного потока HTML — кода для отображения браузером.

Метод writ e объекта Response можно использовать для вставки текста (как содержимого, так и HTML-дескрипторов) в любое место Web-документа или даже

для создания полной Web-страницы. Для помещения на страницу текста нужно просто передать вставляемый текст методу Response. Write как значение перемен — ной или в виде строкового литерала (т. е. текста в кавычках) следующим образом:



Response. Write «»

Response. Write _

«Методу Write объекта Response можно передавать » & _

«в качестве параметров и текст, и HTML-дескрипторы.»

Response. Write

«Амперсант (&) в VBScript применяется для конкатенации строк, »

«а подчеркивание ( ) позволяет разместить один оператор » ‘

«в нескольких строках.»

Response. Write «»

%>

Обратите внимание, что амперсант (&) в VBScript используется как символ

конкатенации (сцепления) строк, а подчеркивание (_) служит для продолжения оператора на следующей строке. Таким образом, в приведенном примере с помо- щью символа подчеркивания второй вызов метода Response. Write в целях фор —

Самоучитель по креативному веб-дизайну. Книга 4, стр.39





Response. Write

«Для отображения кавычек на Web-странице можно использовать » &

«пару двойных кавычек: «»Response. Write»".

»

Response. Write _

«Для отображения кавычек на Web-странице можно использовать » &

«функцию Chr () : » & Chr(34) & «Response. Write» & Chr (34) & » .

»

Response. Write

«Для отображения кавычек на Web-странице можно использовать » &

«управляющую HTML-последовательность: "Response. Write".»

%>

Самоучитель по креативному веб-дизайну. Книга 4, стр.40

Response. Write «» & _

«HTML and Web Design Tips & Techniques»

Response. Write »

Response. Write M
PlMHKoHpafl»

Response. Write M
KHHr»

Response. Write «
M«roro234 . 25»

Response. Write «

»

Response. Write «»

Response. Write «»

%>



Вместо постоянных повторений имени объекта лучше воспользоваться ключе —

вым словом with:



With Response

.Write «»

.Write « .Write «HTML and Web Design Tips & Techniques»

.Write »

. Write «
HMHKoHpafl»

.Write n
#aMWjiPOTKMHrn

.Write «
MToro234.25»

.Write «

»

.Write «

Самоучитель по креативному веб-дизайну. Книга 4, стр.41

HTML and Web Design Tips & Techniques





DIM tableStart, tableEnd, tdLeft, tdRight, tdEnd

DIM trStart, trEnd ‘ Для хранения строковых значений

DIM custName (1) ‘ Массив из двух элементов

DIM totalDue ‘ Для хранения числового значения



tableStart = »

align=fcenter’ width=’200′ border=’l'»

tableEnd = «

»

tdLeft = « tdRight = « tdEnd = «

»

trStart = «
»

trEnd = «

»

custName(0) = «Конрад»

custName(1) = «Кинг»

totalDue =234.25

v

With Response

.Write tableStart

.Write trStart

.Write tdLeft & «Имя» & tdEnd

.Write tdRight & custName(0) & tdEnd & trEnd

.Write trStart

.Write tdLeft & «Фамилия» & tdEnd

.Write tdRight & custName(1) & tdEnd & trEnd

.Write trStart

.Write tdLeft & «Итого» & tdEnd

.Write tdRight & totalDue & tdEnd & trEnd

.Write tableEnd

End With

%>

Самоучитель по креативному веб-дизайну. Книга 4, стр.42

выходного потока HTML браузеру.

Обычно лучше дождаться окончания всей обработки перед тем как отправ —

лять содержимое буфера браузеру. Но если ASP-страница содержит сценарий, ко- торый выполняется длительное время, можно посылать части результирующей

страницы или хотя бы сообщение о состоянии, дабы тем самым уведомить посе-»

тителя, что сценарий обрабатывает его запрос. В противном случае посети — тель может подумать, что страница (или, может быть, сервер) «недоступна», поскольку сервер не прислал запрошенную страницу. Если не указано обрат — ное, Web-сервер пересылает содержимое выходного буфера только после завер — шения всей работы обработчиком сценариев. У объекта Response есть одно

СВОЙСТВО (Response. Buffer) И Три метода (Response. Flush, Response. Clear И

Response. End), которые можно использовать для управления буферизацией вы — ходного потока HTML обработчиком сценариев.



ПРАКТИКУМ

Используйте свойство Response. Buffег для указания, должен ли Web-сервер бу — феризовать информацию, созданную ASP-страницей. Установка значения этого свойства равным True сообщает серверу, что всю выходную информацию нужно сохранять до тех пор, пока обработчик сценариев не обработает все сценарии,

или пока обработчик сценариев не вызовет либо метод Response. Flush, либо

метод Response. End (о нем пойдет речь чуть ниже). Если же свойство

Response. Buffer установить равным False, то сервер будет сам управлять пото —

Глава 11. Активные серверные страницы (ASP) * 56 5





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

Самоучитель по креативному веб-дизайну. Книга 4, стр.43

,

а за НИМИ текст «Пожалуйста, подождите. Выполняется обработка запроса. ..». Но Web-сервер ничего не отправит браузеру, пока обработчик сценариев не завершит выполнение запроса во второй половине сценария. В результате посетитель

УВИДИТ Сообщение «Пожалуйста, подождите. Выполняется обработка запроса…» лишь тогда, когда он получит результаты запроса. Если на обработку запроса требуется 30 секунд, посетитель может покинуть страницу, поскольку после щел — чка на гиперссылке, который должен вызвать ASP-страницу с данными об объе — ме продаж, «ничего не произошло».

Чтобы Web-броузер Сразу же ОТПравИЛ Сообщение «Пожалуйста, подождите.

Выполняется обработк а запроса…» , нужн о установит ь СВОЙСТВО Respons e. Buffe r



равным False, как показано ниже:





CONST oConnection =

«DRIVER={MySQL};SERVER=NVBizNet;UID=root;PWD=;DATABASE=hwdtt»

DIM connObj, totalSales

Response. Buffer = false

Response. Write _

« HTML PUBLIC «»-//W3C//DTD HTML 4.0//EN»">»

Response. Write «Controlling the HTML Output Stream

»

Response. Write _

«Пожалуйста, подождите. Выполняется обработка запроса…»

Set connObj = server, createobject («adodb. connection»)

566 Глава 11. Активные серверные страницы (ASP)





connObj. ConnectionString = oConnection

connObj. Open

Set totalSales = connObj. execute I

(«SELECT SUM(InvoiceTotal) AS TotalSold FROM invoices»)

Response. Write «Общая сумма продаж: » & totalSales(«TotalSold»)







Обратите внимание, что значение свойства Response. Buffer можно изменять

лишь тогда, когда выходной буфер пуст. Поэтому оператор, устанавливающий

Значение Response. Buffer равным False (ИЛИ True) ДОЛЖеН наХОДИТЬСЯ В ASP —

странице перед любым статическим HTML-кодом (включая и дескрипторы

и ) и операторами, помещающими данные в выходной буфер.

В предыдущем примере обработчик сценариев опять помещает сообщение

«Пожалуйста, подождите. Выполняется обработка запроса… » В ВЫХОДНОЙ бу — фер. Но на этот раз Web-сервер посылает HTML-дескрипторы и текст этого со —

общения сразу же, как только сервер обнаруживает их в выходном потоке HTML. После того, как обработчик сценариев выполнит запрос и выдаст сумму всех

продаж и дескрипторы и (в данном случае — через 30 секунд),

сервер отправит данные для отображения браузеру (см. рис. 11.3).







Метод Response. Flush сообщает Web-серверу, что содержимое выходного бу- фера нужно немедленно послать браузеру; в это время обработчик сценариев бу- дет продолжать обработку сценария. Содержимое выходного потока можно сбро — сить клиенту (т. е. отправить его содержимое браузеру) в любой момент, когда вы

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

сложного запроса. Для использования метода Response. Flush необходимо про — сто вставить в ASP-сценарий следующую строку:







Пусть, например, ваш сценарий должен выполнить три запроса, каждый из которых выполняется 20 секунд. Чтобы за ту минуту, когда генерируется оконча —

тельный результат, посетитель не подумал, что система зависла, ему можно выда — вать промежуточные итоги с помощью кода наподобие следующего:

Глава 11. Активные серверные страницы (ASP) 56 7







CONST oConnectio n = _

11DRIVER= {MySQL } ; SERVER=NVBizNet; UID=root ; PWD=; DATABASE=hwdtt» DIM connObj

DIM officelSales, office2Sales, office3Sales

Response. Buffer = true

Response. Write

«PUBLIC «»-//W3C//DTD HTML 4.0//EN»">» ‘.

Response. Write «yправление выходным потоком HTML

»

Response. Write

«Пожалуйста, подождите. Выполняется обработка запроса…»

1

Response. Write «Выполнен запрос 1 из 3. Продажи по офису 1 = » & _

officelSales & «

»

Response. Flush

‘ «Эператоры подготовки и выполнения запроса 2>

Response. Write «Выполнен запрос 2 из 3. Продажи по офису 2 = » & _

office2Sales & «

»

Response. Flush »

‘ «Эператоры подготовки и выполнения запроса 3>

Response. Write «Выполнен запрос 3 из 3. Продажи по офису 3 = » & _

office3Sales & «

»

Response. Flush

Response. Write «Общая сумма продаж: » & _

(officelSales + office2Sales + office3Sales)

%>



Полезные ссылки
Случайные записи
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 085
  • 04.03.2012">YouTube будет транслировать балетные спектакли из Большого театра
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 064
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.49
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.45
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 105
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.150
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 080
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 141
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 091
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.24
  • 04.04.2010">Mетоды и ресурсы по выбору цветовых схем
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 066
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 030
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 021
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...