Самоучитель по креативному веб-дизайну. Книга 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)

%>

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.28
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.14
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.43
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.7
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.143
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 100
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 121
  • 17.11.2011">Обзор SandyBridge E
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 076
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 108
  • 04.06.2012">Судья заявил, что у Oracle нет авторских прав на Java API
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 096
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 133
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 077
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 063
Опрос

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

View Results

Loading ... Loading ...