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

на Web-СТранИЦе «Конрад Кинг теперь Конрад Кингсли»:



Response. Write (Sessio n («firstName») & » » & Session(«lastName» ) & » теперь »

Session(«lastName» ) = «Кингсли»

Response. Write(Session(«firstName») & » » & Session(«lastName»)



Обратите внимание, что переменные сеанса можно использовать в выражени —

ях и в качестве параметров функций или методов. Достаточно просто вставить нужные имя объекта (наподобие имени коллекции) и ключ (т. е. имя перемен —

ной сеанса) в выражение или список параметров в вызове функции или метода.

Имейте в виду, что переменные сеанса занимают во время сеанса память Web — сервера. При запросе посетителем Web-страницы сервер читает с диска перемен —

ные сеанса (и их значения) и запоминает их в объекте session, который нахо — дится в оперативной памяти. Поэтому не забывайте во время сеанса уничтожать переменные сеанса, которые больше не нужны. Чтобы удалить из коллекции пе — ременную сеанса, достаточно присвоить ей значение Empty («Пусто»):



Session(«orderTotal») = Empty



Помните, что присваивание переменной сеанса пустой строки («») или зна — чения Nothing («Ничего»), вроде таких:

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





Session(«productCodel») = » »

Session(«productQtyl») = Nothing



вовсе не эквивалентно присваиванию значения Empty.

Элементы с пустым значением — это все равно элементы (пусть и с пустым

значением), находящиеся в коллекции session. Как это ни парадоксально, в языке VBScript Nothing — это непустой объект. Поэтому и пустая строка, и Nothing в качестве значений переменных сеанса занимают во время сеанса па —

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

Кроме устойчивых переменных Web-сервер для каждого сеанса создает еще и таймер. Когда сервер запускает сеанс, он устанавливает свойство таймера

Session. Timeout в 20 минут для IIS версии 4 (10 минут для IIS версии 5). Тай —

мер начинает работать с начального интервала времени по умолчанию и отсчи —

тывает время до нуля (0). Когда таймер доходит до нуля, сервер завершает ASP —

сеанс и уничтожает всю связанную с ним информацию. Свойству

Session. Timeout в любом месте можно присвоить новое значение с помощью оператора сценария, например:



Session. Timeout = 1



Данный оператор устанавливает тайм-аут сеанса в одну минуту. (Свойству

Session. Timeout нельзя присвоить время, исчисляемое в долях. минуты.)

Каждый раз, когда обработчик ASP-сценариев получает запрос от браузера,

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

сайтом, Обработчик Сценариев Не Переустанавливает СВОЙСТВО Session. Timeout, И

после того как оно дойдет до нуля, сервер прекращает этот сеанс.

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

мечательно, если бы при переходе посетителя на другой Web-сайт или прекраще —

нии работы в Internet браузер отправлял серверу сообщение об «отключении». К сожалению, так не бывает — в силу отсутствия состояния в HTTP-соединениях. Конечно, прекращение сеанса посетителя по тайм-ауту может привести к конф — ликту, если посетитель «завис» на одной Web-странице и не выдавал запросов в течение времени тайм-аута, а затем снова начал работать со страницей.

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

Если браузер предъявляет идентификатор сеанса для сеанса, закрытого серве —

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

ное значение, но создает новый объект session и связывает его с этим иденти —

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

ряет нужные ему переменные сеанса (username и password) и перенаправляет

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





посетителя на страницу регистрации, если хотя бы одна из этих переменных от- сутствует в коллекции переменных сеанса:



If isEmpty(Session(«username»)) Then

Response. Redirect «/hwdtt/Chapter11/TiplOLogin. htm» End If

If isEmpty(Session(«password»)) Then

Response. Redirect «/hwdtt/Chapterll/TiplOLogin. htm» End If

Обратите внимание, что если вы переустанавливаете время тайм-аута, после которого страница станет недоступной, то стоит в каком-нибудь месте страницы известить посетителя об этом. Вряд ли посетителю понравится, что если в сере — дине заполнения длинной формы его отвлечет телефонный звонок, то после окончания разговора все придется начинать заново.

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



Выполнение запросов SQL и отображение результатов запроса в HTML-таблице

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

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

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

метод Response. write отобразит результаты выполнения этих запросов.



ПРАКТИКУМ

Чтобы выбрать данные из базы данных SQL и отобразить их в Web-странице, сценарию нужны три объекта: объект connection, объект для приема результатов запроса и ASP-объект Response. Объект соединения с базой данных можно со —

здать с помощью метода server. Createobject, как показано в следующем коде:



Dim objMySQLCon

Set objMySQLCon = Server. CreateObject(«ADODB. Connection»)

objMySQLCon. Connectionstring =

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

objMySQLCon. Open



%> •



Сначала свойству Connectionstring объекта соединения (в данном приме —

ре — objMySQLCon) присваиваются значения, необходимые для подключения к

СУБД. Затем с помощью метода open объекта соединения открывается соедине- ние с СУБД. В нашем случае объект objMySQLCon использует ODBC-драйвер MySQL для открытия соединения с СУБД MySQL на компьютере с именем

NVBizNet. Сценарий подключается с именем привилегированного пользователя

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



root, без пароля, и выбирает для использования базу данных hwdtt. После вы —

полнения метода open объекта соединения сценарий может пересылать в СУБД

SQL-операторы. | Н

Хотя можно позволить посетителям вводить запросы через HTML-формы, большинство сайтов предлагают посетителю выполнить предопределенные запро — сы или хранимые процедуры. Допустим, например, что имеется ASP-страница с

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



!— Текст Web-страницы и определение формы —>

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

Типичный сайт имеет более одного спонсора или же рекламирует несколько

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

пользоваться бесплатным программным приложением Ad Rotator, которое пред —

лагает компания Microsoft. Если вы устанавливаете Personal Web Server (PWS) или Internet Information Server (IIS) версии 4 или 5, то программа установки по умол — чанию копирует и Ad Rotator.

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





ПРАКТИКУМ

Для использования Ad Rotator необходимо создать его файлы расписания и пере — направлений. В файле расписания ротатора {rotator schedule file) потребуется пере — числить графические изображения баннеров, которые должен показывать Ad Rotator. А файл перенаправлений {redirection file) — это ASP-страница, содержащая сценарий, генерирующий «отклик» баннера, т. е. направление браузера на целевую

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

Файл расписания имеет следующий формат:



REDIRECT URL-адрес-файла-перенаправления

WIDTH ширина-баннера-в-пикселях

HEIGHT высота-баннера-в-пикселях

BORDER ширина-рамки-баннера-в-пикселях



bannerImageURLl bannerRedirectionURLl

bannerImageAltAttributel bannerWeightl

bannerImageURL2

bannerRedirectionURL2

bannerImageAltAttribute2

bannerWeight2



Хоть это и необязательно, назовите свой файл расписания Ad Rotator наподо —

бие AdRotatorScheduie. asp и сохраните его в папке Web-сайта с именем вроде

BannerAds. Хотя ни имя файла, ни имя папки, предложенные здесь, не обяза —

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

Первые четыре строки файла расписания ротатора содержат информацию, ‘от — носящуюся ко всем рекламным баннерам, демонстрируемым в области показа. Каждая строка начинается с ключевого слова: REDIRECT («Перенаправить»), WIDTH («Ширина»), HEIGHT («Высота») или BORDER («Рамка»). Ниже описывается инфор — мация, помещаемая после ключевых слов каждой из четырех строк файла:

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

• REDIRECT. Далее следует URL-адрес файла перенаправления. Когда посе — титель щелкает на баннере, соответствующая ему гиперссылка указывает

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

пример, ваш файл Перенаправления называется AdRedirect. asp и нахо —

дится в папке BannerAds на Web-сайте NVBizNet. com, то первая строка

файла расписания будет такой: REDIRECT http://www. NVBizNet. com/

hwdtt/BannerAds/AdRedirect. asp. МОЖНО также указывать ПОЛНЫЙ ВИрТу —

альный путь файла перенаправления, в нашем примере это /hwdtt/

BannerAds/AdRedirect. asp.

• WIDTH. Далее указывается ширина баннера в пикселях.

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





• HEIGHT. Далее указывается высота баннера в пикселях.

• BORDER. Далее указывается ширина (в пикселях) рамки, отображаемой бра —

узером вокруг баннеров.



За этими четырьмя строками в файле расписания следует строка, содержащая одну звездочку (*). Она отделяет глобальную информацию обо всех баннерах от групп из четырех строк, описывающих отдельные баннеры. Формат каждой такой группы из четырех строк следующий:

• bannerimageURL. URL-адрес полного виртуального пути изображения, ото- бражаемого в виде баннера. Например, для показа изображения баннера с

Именем SomeBanner. gif, находящегося В папке BannerAds На Сайте

NVBizNet. com, замените bannerimageURL на http://www. NVBizNet. com/

hwdtt/BannerAds/SomeBanner. gif ИЛИ /hwdtt/BannerAds/SomeBanner. gif.

• bannerRedirectionURL. URL-адрес целевой Web-страницы баннера, то есть страницы, на которую попадет посетитель при щелчке на этом баннере.

• bannerlmageAltAttribute. Атрибут alt дескриптора изображения

баннера. Браузер отображает текст атрибута ai t при загрузке изображения баннера, или если пользователь отключил отображение картинок, или при использовании Web-браузера, работающего в текстовом режиме.

• bannerweight. Насколько долго Ad Rotator должен показывать данный баннер по сравнению с другими баннерами, перечисленными в файле рас — писания ротатора. Пусть, например, расписание ротации содержит два баннера: у одного bannerweight равно 10, а у другого — 5. Тогда Ad

Rotator будет показывать первый баннер в два раза чаще, нежели второй.



Рекламный баннер можно отобразить, создав объект Ad Rotator с помощью

ВЫЗОВа метода Server. CreateObject, И затем ВЫЗВав метод GetAdvertisement этого объекта. Например, для отображения баннера в верхней части домашней (т. е. заглавной) страницы сайта сохраните приведенный ниже VBScript-сценарий

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



Показ рекламного баннера —>





Response. Write

adRotatorObj. GetAdvertisement( _

«/hwdtt/Chapterll/BannerAds/AdRotatorSchedule. asp»)

%>


*** Содержимое домашней страницы ***

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

http://www. NVBizNet. com/default. htm.

Файл расписания, файл перенаправления и ASP-страница со сценарием, ис —

пользующим для выборами показа баннера Ad Rotator, доступны для выгрузки на

сайте http://www. diasoft. kiev. ua.



Отслеживание показов и посещений

в Microsoft Banner Ad Rotator



Чтобы оправдать расходы на разработку и предоставление бесплатного содер- жимого сайта, многие Web-сайты продают место под рекламные баннеры компа — ниям, предлагающим свои товары или услуги. Кроме заманивания посетителей

на другие сайты, баннеры часто используются для информирования о товарах

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





или специальных предложениях, доступных на том же сайте. Например, на сайте

Amazon. com (крупный онлайновый магазин, торгующий, в частности, книгами —

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

влечения посетителей на другие торговые сайты, рекламодателей в принципе интересуют два показателя: показы и посещения.

Показы {impressions) — это количество раз, когда посетители видят конкрет- ный баннер. Чем больше показов, тем более вероятно, что реклама попадется на глаза посетителю, который пожелает приобрести рекламируемый товар. Показы зависят и от того, сколько раз ротатор баннеров показывает на Web-странице баннерные изображения, и от того, как часто посетители заходят на страницу. Например, баннер, расположенный на странице, запрашиваемой 100 раз в час,

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

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

Посещения еще более важны, чем показы. Посещение (click-through) возника — ет, когда посетитель щелкает на баннере, чтобы перейти на Web-страницу с рек — ламируемым товаром или услугой. Вспомните коммерческие телепередачи. Одно дело — показать рекламу зрителю, и другое дело (более важное, с точки зрения рекламодателя) — убедить зрителя пойти и купить товар.

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

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

как часто посетители щелкают на баннере для получения дополнительной ин —

формации (т. е. количество посещений). Рекламодатели пользуются статистикой показов и посещений для определения эффективности рекламной кампании. А

владельцы Web-сайтов используют эту же статистику для определения рекламно —

го рейтинга: чем больше среднее количество показов и посещений, тем больше рекламодателей захотят разместить рекламный баннер на этой Web-странице.



ПРАКТИКУМ

Для накопления данных о показах и посещениях для последующего анализа сна — чала нужно создать в базе данных SQL-таблицу с помощью приведенных ниже SQL-операторов:

USE hwdtt;

CREATE TABLE bannerAdStats

(targetURL VARCHAR(60) NOT NULL,

imageURL VARCHAR(60) NOT NULL,

impressionCount INTEGER,

clickThroughCount INTEGER) ;

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





Первый оператор этого примера указывает СУБД, что надо использовать базу данных hwdtt. Второй оператор создает SQL-таблицу (bannerAdstats), в кото — рой ASP-сценарии будут хранить счетчики показов и посещений.

Приложение Microsoft Banner Ad Rotator (стандартно поставляемое вместе с

Personal Web Server (PWS) и Internet Information Server (IIS) версий 4 и 5) выбира —

ет баннер из списка, находящегося в файле «расписания ротатора», и отображает

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



SET adRotatorObj — Server. CreateObject(«MSWC. AdRotator»)

Response. Write

adRotatorObj. GetAdvertisement( _

11/hwdtt/BannerAds/AdRotatorSchedule. asp»)

%>

Первая строка этого сценария создает объект Ad Rotator (adRotatorObj), а вызов

метода Response. Write (начинающийся во второй строке сценария) отображает

баннер, ВОЗВращаемЫЙ В результате ВЫЗОВа Метода adRotatorObj. GetAdvertisement.

Для подсчета количества показов, то есть сколько раз метод GetAdvertisement выбирает конкретный баннер, в начало ASP-страницы, на ко — торой отображается этот баннер, необходимо поместить следующую функцию:



Function DisplayRotatorAd(adRotatorObj, rotatorScheduleFile)

Dim objMySQLCon

Dim strAdRotatorHTML, intlmageStart, strlmageURL

1 Указание ротатору, чтобы он сгенерировал HTML-код для отображения баннера

StrAdRotatorHTML = _

adRotatorObj. GetAdvertisement(rotatorScheduleFile) .

‘ Выделение URL-адреса графического изображения из полученного HTML-кода

intlmageStart = InStr(l, strAdRotatorHTML, «image=») + б

strlmageURL = Mid(strAdRotatorHTML, intlmageStart,

InStr(intlmageStart, strAdRotatorHTML, «»"») — intlmageStart)

1 Соединение с СУБД и обновление счетчика показов

Set objMySQLCon = Server. CreateObject(«ADODB. Connection»)

With objMySQLCon

.ConnectionString =

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

.Open

.Execute «UPDATE bannerAdstats » &

«SET impressionCount = impressionCount + 1 » &

«WHERE imageURL = ‘ » & strlmageURL & » ‘ »

.Close

End With

DisplayRotatorAd = strAdRotatorHTML End Function

%>

Операторы в первой половине данного сценария вызывают метод ротатора GetAdvertisement, чтобы сгенерировать HTML-код отображения баннера в виде гиперссылки, расположенной на Web-странице. Сценарий разбирает HTML-код,

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





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

соединение с СУБД MySQL и обновляют счетчик показов г в SQL-таблице

bannerAdStats.

Обратите внимание, что функция DispiayRotatorAd() возвращает результат

ВЫЗОВа метода adRotatorObj. GetAdvertisement. ПОЭТОМУ В ПерВОМ Примере СЦе —

нария этого раздела следует заменить вызов метода GetAdvertisement на вызов

функции DispiayRotatorAdo, как показано ниже:





SET adRotatorObj — Server. CreateObject(«MSWC. AdRotator»)

Response. Write _

DisplayRotatorAd(adRotatorObj,

«/hwdtt/BannerAds/AdRotatorSchedule. asp»)

%>

Если вы прочли предыдущий раздел, то должны уже знать, что метод

GetAdvertisement генерирует HTML-код наподобие следующего:





URL=http://www. NVBizNet. com/default. htm&

image=/BannerAds/NVBizNet. GIF»>

alt=»Обращайтесь на сайт NVBizNet. com за советами по Web-дизайну»

width=»400″ height=»60″ border=»l»X/a>

Конкретный HTML-код, сгенерированный в результате вызова метода

GetAdvertisement в вашем сценарии, будет определяться описаниями баннеров

в соответствующем файле расписания ротатора. Но в любом случае атрибут href созданного дескриптора будет указывать на файл перенаправления Ad Rotator. (URL-адрес файла перенаправления указывается после ключевого слова REDIRECT в первой строке файла расписания ротатора.)



Полезные ссылки
Случайные записи
  • 26.07.2011">Продвинуть бизнес поможет сайт
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 010
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 144
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.27
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 048
  • 06.09.2012">Twitter запустила инструментарий для встраивания в сайты хроники твитов
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 083
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 022
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 067
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 022
  • 04.08.2011">Шторы на заказ – укрась свой родной дом
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.33
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 043
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 060
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 093
Опрос

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

View Results

Loading ... Loading ...