Asp компонент ad rotator

Rotating Advertisements

Advertising is big business on the Web. This lesson describes how to use the Ad Rotator component, installed with IIS, to rotate advertisements on your Web pages. The Ad Rotator component selects an advertisement for your Web page each time the user loads or refreshes the Web page. Furthermore, if you want to change an advertisement, you only need to change it in the redirection and rotation schedule files, instead of changing all the ASP files that contain the advertisement. This saves development time if the advertisement appears on numerous pages within your Web site.

Two files are required to set up the Ad Rotator component: a redirection file, which contains URL links to ads, and a rotation schedule file, which contains display data. By setting up these two files, the Ad Rotator component can be called by any ASP page on your Web site.

In this lesson you perform the following tasks:

Example 1: Create an Ad Rotator rotation schedule file that creates ad-image links on any page that calls this file.

Example 2: Create an Ad Rotator redirection file that specifies global ad-display data and information specific to each advertisement.

Example 3: Create an include file to hold your Ad Rotator calling code.

Example 4: Test the Ad Rotator by creating an ASP page that calls the Ad Rotator component to display and rotate ads. This example requires that examples 1, 2, and 3 are completed first.

Example 1: Create an Ad Rotator Rotation Schedule File

A rotation schedule file is used to catalog information about the ads you want to display, including redirection information after the advertisement is clicked on, the size of the displayed advertisement, the image to display, a comment for the advertisement, and a number that indicates how often a particular advertisement is chosen. When methods of the Ad Rotator component are called in an ASP page, the component uses this file to select an advertisement to display.

The rotation schedule file is divided into two sections that are separated by an asterisk (*). The first section provides information common to all the ads, and the second section lists specific data for each ad. To test the rotation schedule file, you will use some images from for your ad images. The following list outlines the structure of the rotation schedule file:

Section 1

Redirection: In URL form, the path and name of the ASP file that can be executed before showing an advertisement. This file can be used to record information about the user who clicks on your ad. You can record information such as the client’s IP address, what page the client saw the advertisement on, how often an advertisement was clicked on, and so forth. This ASP file can also handle the case where there is no URL associated with any advertisement in Section 2. When charging advertisers for each hit on their advertisement, it is good practice to prove to them that all the hits aren’t resulting from the same user repeatedly clicking Refresh.

Width: The width of each ad image, in pixels. The default is 440.

Height: The height of each ad image, in pixels. The default is 60.

Border: The border thickness around each ad image. The default is 1.

Asterisk (*): Separates the first section from the second section. This character must be on a line by itself.

Section 2

You need to complete the following for each advertisement:

Image URL: The virtual path and filename of the image file for the advertisement.

Advertiser’s Home URL: The URL to jump to when this link is selected. If there is no link, use a hyphen (-).

Text: The text to display if the browser does not support graphics.

Impressions: An integer indicating the relative weight to give to this ad when the Ad Rotator component selects an advertisement. For example, if you list two advertisements, an ad given an impression of 3 has a 30% probability of being selected while an ad given an impression of 7 has a 70% probability of being selected. In this example, the Ad Rotator component selects the Microsoft Windows advertisement two times out of five and the Microsoft Office advertisement is selected three times out of five.

Copy and paste the following code in your text editor, and save the file as MyAdRot.txt in the x:\Inetpub\Wwwroot\Tutorial directory.

Example 2: Create an Ad Rotator Redirection File

When a user clicks on an advertisement, an Ad Rotator redirection file written in ASP can capture some information before showing the advertisement and write that information to a file.

For this to work, the x:\InetPub\Wwwroot\Tutorial folder must give Read/Write access to the IUSR_ ComputerName and IWAM_ ComputerName accounts. Alternatively, you can write this information to a Microsoft Access database.

In the code below, Server.HTMLEncode is used to encode header fields. In previous lessons, HTMLEncode was used to encode form input only. However, it is possible for a malicious user to manipulate header information, so it is a good security practice to encode all input generated from a request, not just form input.

Copy and paste the following code in your text editor, and save the file as AdRotRedirect.asp in the x:\Inetpub\Wwwroot\Tutorial directory.

Example 3: Create an Ad Rotator Include File

Include files are used to store any code that will be used by more than one ASP or HTML file. It makes sense to put your Ad Rotator code into a simple function in an include file. With an Ad Rotator include file, you need to make only one function call from any ASP or HTML file when you want to display an advertisement. Alternatively, you can put the code from the include file in every ASP file where you plan to show an advertisement. However, if you want to change that code, you have to make the change in every ASP file instead of in one include file.

In this example, you create an Ad Rotator include file containing a function named GetAd. This function randomly selects ads to display on your ASP pages.

Copy and paste the following code in your text editor, and save the file as in the x:\Inetpub\Wwwroot\Tutorial directory.

Example 4: Test the Ad Rotator

To test the application you have built on the Ad Rotator component, you need an ASP page that calls the function in the Ad Rotator include file you created.

Copy and paste the following code in your text editor, and save the file as DisplayAds.asp in the x:\Inetpub\Wwwroot\Tutorial directory. View the example with your browser by typing http://localhost/Tutorial/DisplayAds.asp in the address bar.

In the browser, you should see the following:

ASP Содержание ротатор Компонент (ASP 3.0)

ASP Содержание компонентов ротатора

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

Текстовый файл, называется Content Schedule Файл включает информацию о строках содержимого.

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


ASP Содержимого ротатор Пример

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

Во- первых, создайте текстовый файл с именем «textads.txt» и поместите его в папке под названием «text» .

This is a great day!!

Обратите внимание на #NUMBER в начале каждой строки содержимого. Это число является необязательным параметром, который указывает относительный вес строки содержимого HTML. В текстовом файле выше, содержание ротатор будет отображаться первой и второе содержимого строки три десятых частью времени, а третьи строки четыре десятых времени.

Затем создайте файл ASP и вставьте следующий код:

Asp компонент ad rotator

Компонента Ad Rotator позволяет создать объект, выводящий на страницу меняющиеся с каждой новой перезагрузкой рисунки. Экземпляр объекта создаётся командой .

Прежде чем использовать объект, необходимо создать некий текстовый файл-конфигуратор по определённому формату. Он состоит из двух секций. Первая из них содержит общую для всех рисунков информацию. Вторая содержит информацию о рисунках, по четыре строки описания на каждый. Секции отделены друг от друга звёздочкой:

[WIDTH numWidth]
[HEIGHT numHeight]
[BORDER numBorder]

Здесь квадратные скобки в первой секции обозначают необязательный параметр. Каждый раз случайным образом с весом impressions будет генериться следующий текст:

Нужно отметить, что все рисунки должны иметь один и тот же размер, который указывается в первой секции. «Вес» impressions — любое целое число от 0 до 4,294,967,295, означающее относительную частоту появления того или иного рисунка. В приведённом на предыдущей странице примере используется следующий файл.

После того, как файл-конфигуратор создан и объект открыт, можно использовать его методы и свойства.

Asp компонент ad rotator

Нередко на сайтах можно увидеть, что при каждом заходе на страницу на ней появляется новый рекламный баннер (англ.: banner — «знамя») — изображение, обычно в виде прямоугольника размером 468 х 60 пикселов, например, как на этой странице.

Смена баннеров в рассмотренном примере обеспечивается применением серверной компоненты Ad Rotator (англ.: ad, advertisement — реклама), находящейся в файле Adrot.dll .

Фрагмент серверного сценария (на языке JScript), обеспечивающего применение этой компоненты, выглядит следующим образом:

Здесь myBanners.txt — текстовый файл, содержащий информацию о публикуемых на странице баннерах. Этот файл (он называется (Rotator Schedule file)) имеет следующую структуру:

Частота показа каждого баннера будет определяться как доля его весового коэффициента в общей сумме весов. В нашем примере использовался файл (» myBanners.txt «):

Общие параметры необязательны; они могут принимать значения, принятые по умолчанию. В этом случае первая строка файла должна содержать только символ: ‘*‘.

Таким образом, Rotator Schedule file имеет следующую структуру:

REDIRECT URL Путь к dll или asp-файлу, которому передается управление при щелчке на баннере (независимо от конкретного баннера). В этом файле обычно собирается статистика обращений к данному баннеру, а затем происходит переадресация на URL, соответствующий данному баннеру.
WIDTH numWidth Ширина рекламного ролика в пикселах.
HEIGHT numHeight Высота рекламного ролика в пикселах.
BORDER numBorder Толщина границы рекламного ролика в пикселах. По умолчанию = 1.
adURL Адрес файла с рекламным изображением.
adHomePageURL Адрес страницы, на которую ссылается данный рекламный ролик. Если ролик не связан ни с какой страницей, в качестве значения adHomePageURL следует указать ‘-‘.
Text Альтернативный текст (для браузеров, не поддерживающих графику)
impressions Доля времени, отводимая под данное объявление
Илон Маск рекомендует:  Vrml'97 инструменты

Некоторые свойства баннеров можно изменять из asp-сценария с помощью свойств компоненты AdRotator. Если установленные в asp-сценарии свойства противоречат назначениям, сделанным в Rotator Schedule File, действовать будут те, значения которых присвоены в asp-файле. Например, в asp-файле мы указали:

и, как нетрудно видеть, действует именно это значение, хотя в файле myBanners.txt указана толщина рамки, равная 1.

Border Толщина рамки вокруг баннера
Clickable Определяет, является ли баннер гиперссылкой
TargetFrame Имя фрейма для размещения баннера

Метод GetAdvertisement() обеспечивает выбор очередного баннера и его размещение на странице.

ASP Content Rotator

ASP компонент содержания ротатор

ASP компонент Content Rotator создает объект ContentRotator всякий раз, когда посетители попадают на сайт, или обновить страницу, то объект будет отображать различное содержимое строки.

Информация о содержании строки содержится в файле с именем каталога контента (Content Schedule Файл) текстовый файл.

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


ASP примеры Content Rotator

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

Во-первых, создайте текстовый файл с именем «textads.txt» и поместите его в подпапку под названием папки «текст».

This is a great day!!

Примечание # номер каждой строки контента исходное положение. Это число является необязательным параметром, используемым для обозначения относительного веса строки содержимого HTML веса. В приведенном выше текстового файла, Content Rotator имеет шанс показать первые три десятых строки контента, имеет шанс на три десятых секунды, чтобы отобразить содержимое строки из четырех десятых имеет шанс показать треть строка.

Затем создайте файл ASP и вставьте следующий код:

Asp компонент ad rotator

Sharepoint Designer 2010

Added an control of Ad Rotator.
I see there is a choice of using an xml file or a datasource to get the info for the control.

When I create a list datasource and use this as the datasource for the control I just get an error (when previewing the page) saying that Value does not fall within the expected range.

I have changed the datasource to ensure that only the fields that corrospond to the control are retrieved.
ImageURL, NavigateURL, Keyword, AlternativeText etc etc (these are the xml elements that would be in the advertising file if I were using the xml option)

The Ad Rotator Component

The Ad Rotator component displays advertisements on your Web page. You configure a data file called a Rotator Schedule file with information about the different ads you want to display. The Ad Rotator displays a graphic image with your ad and creates a hyperlink to a Web site associated with your ad. Each time the Web page is downloaded or refreshed, the Ad Rotator determines which ad in the data file should appear and then inserts the appropriate HTML. You do not have to change the ads yourself; simply update the Rotator Schedule file. The Ad Rotator also has a mechanism for recording the number of times a visitor jumps to a site that your ad points to.

You can implement an Active Server component in either an EXE or DLL; the Ad Rotator is implemented in the DLL named adrot.dll. If you are running IIS, the file is in the C:\WINNT\SYSTEM32\INETSRV folder.

In general, components that are implemented as DLLs perform better. When a component is implemented as an EXE, it must run as its own process. When the component and IIS pass data between them, the interprocess communication that must occur is relatively expensive. The same component written as a DLL is loaded as part of IIS’s processes—there is no interprocess communication, so performance is better. All the components that come with Visual InterDev are implemented as DLLs.

The Rotator Schedule File

The Rotator Schedule file holds the information about the ads you display. The default filename is adrot.txt, and it is in the C:\InetPub\iissamples\sdk\asp\components folder if you are using IIS.

The file holds four pieces of information about each ad:

adURL The path to the image file

adHomePageURL The URL of the advertiser’s home page

Text Text to be displayed if the browser does not support graphics

Impressions A priority for the ad

The priority for the ad is a number that can range from 0 through 4,294,967,295. This number determines what percentage of time the ad is shown compared to the other ads in the Rotator Schedule file. To figure the percentage, total all the priorities for all the ads in the Rotator Schedule file and compare the ad’s priority to that total. For instance, if you have ads with priorities set at 100, 300, 400, and 200, they are shown 10, 30, 40, and 20 percent of the time, respectively.

The Rotator Schedule file also contains header information that you specify only once for the entire file:

Redirect The URL for a redirector page. This page counts the number of hits that each ad gets.

Width The width of the ad image, in pixels. The default is 440.

Height The height of the ad image, in pixels. The default is 60. You’ll notice that 440 x 60 is a common size for ads on Web pages.

Border The thickness of the border around the image, in pixels. The default is 1. This parameter can be set to 0 for no border.

Below is a sample Rotator Schedule file layout that contains three ads. An asterisk marks the beginning of the actual ad settings; the four items in each setting contain no keywords.

This schedule file contains three ads. The header section specifies that AdCounter.asp is to be called each time a user clicks on one of the ads on this page. The height, width, and border settings are the same as the default settings, so you can omit these lines. Lines beginning with a hyphen in the header section are ignored; they simply describe what’s happening in the header. An asterisk indicates that the ad information is beginning. You cannot put any comments in this section—this is why it’s important to put all your descriptive text in the header. The position of the lines in this section determines their meaning, so you have to be careful. For instance, the first line is the path to the image, and the second is the URL for the advertiser’s Web site. If the advertiser doesn’t have a Web site, you must hold the position with a hyphen. The Consultants Are Us ad, for instance, doesn’t include a Web site address for Consultants Are Us.

Using the Ad Rotator in an ASP Web Page

To use the Ad Rotator in an ASP Web page, simply drag the component onto your page from the Server Objects tab on the Toolbox. You can also use the following syntax:

In this case, the Server object’s CreateObject method instantiates the AdRotator object. This means that it loads the DLL into memory and creates an instance of the object. The Set keyword assigns the object to a variable. Here, a variable named oAdRotator refers to the new AdRotator object you created. Table 17-2 describes the properties available in the AdRotator object.

Table 17-2. Properties in the AdRotator object.

Property Description
Border Sets the size of the border around the image. If you set this property in your VBScript code, it overrides the same property set in your Rotator Schedule file.
Clickable When this property is set to False, the user cannot jump to the advertiser’s Web site by clicking on the image. This overrides the advertiser’s URL setting that might or might not be set in the Rotator Schedule file.
TargetFrame When used on a Web page that has multiple frames, the property specifies the frame in which the ad will be displayed. The HTML frame tag has a name attribute so that you can name your frames. It’s good practice to put your ads in a frame so that users can browse your site in one frame without disturbing the ad in another frame.

The GetAdvertisement method, shown below, does the work for the AdRotator object:

When called, the GetAdvertisement method generates the HTML image tag appropriate for the ad, including hyperlink information. You pass a path to a Rotator Schedule file as an argument to this method. You typically pass the result of this method to the browser using the Response.Write method or using the leading equal sign syntax.

Pulling it all together

To use the AdRotator object, you need to create a Rotator Schedule file, a redirector ASP file, the Web page that will display the actual ad, and some images to display. The Components Web project in the Components/VIntDev98 folder on the companion CD-ROM contains all the source code for this exercise.

The code below assumes that the images can be found in a directory named /images/ads in your Web project. The Rotator Schedule file in the code below lists three ads, which are scheduled at 40, 20, and 40 percent, respectively. It also specifies an ASP Web page named AdCounter.asp to act as your redirector page. The rotator schedule file, adrot.txt, is located in the root directory of the Components Web project.

The third ad, for Internet Explorer, doesn’t have a URL to go to. The hyphen holds the place of the URL.

The sample redirector page, AdCounter.asp, does a couple of things. First, it records when users visit one of your advertisers’ Web pages. Second (and most obvious), it helps send users to the advertiser’s Web site. The AdRotator object does not do this automatically; when a user clicks on the image of the ad, the AdRotator object calls your redirector page and the advertiser’s URL is sent in the query string. Therefore, in your redirector page, you have to check the Request.QueryString object and see which URL to redirect to.

The redirector page has Active Server Script code that saves the URL that you need to go to. The URL is passed to this page in a variable named URL in the QueryString object. A counter is then used to determine the number of times this URL has been jumped to during this session. Look for a variable in the Session object named ADCNT with the URL appended. The Session variable name might look like this:

Илон Маск рекомендует:  Задание параметра this для callback-функций

If the URL has not been jumped to during the current session, referring to this variable creates a new session variable and initializes its value to 0. The code then saves the previous number of hits plus one in the Session object. This updates the number of times the URL has been jumped to during this session. Moreover, the Redirect method of the Response object is used to jump to the target URL.

This process saves the number of hits to the URL in the Session object. At the end of the session, you must save this information more permanently. The best place to store this information is in a database.

Putting the ad on a Web page

Now that the images are in place, a redirector ASP file is built, and a schedule file is ready to go, all you need to do is put the ad on a page. You create an AdRotator object and then call its GetAdvertisement method. You can do both of these tasks on the same page. However, you probably want to use the same set of ads in more than one page in your site. So it’s better programming practice not to create an AdRotator object on each page but rather to create one AdRotator object for the session and use it on each page necessary.

To create the AdRotator object once for the session, create it in the Session_OnStart event procedure in the global.asa file as shown below:

Notice that since the code needs to reside within a

ASP. Основы. Объекты и компоненты. Доступ к базам данных

Dynamic HTML представляет собой основное средство программирования клиента для Microsoft Internet Explorer 4.0 и выше, но такие программы просмотра Web, как Netscape Navigator, не поддерживают Dynamic HTML. На самом деле очень малая часть функциональности клиентской части, поддерживаемой различными программами просмотра, может рассматриваться как действительно кросс-платформенная.

Если Вы хотите разработать Интернет-узел, открытый для доступа самым различным программам просмотра, то должны перенести программирование с клиента на сервер. Такую возможность предоставляют Microsoft ASP (Active Server Pages — активные серверные страницы). По сути ASP не что иное, как сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML-текст. Это ключевая особенность ASP — клиент никогда не видит вашего кода, а только результирующий HTML, который воспринимает любая программа просмотра.

Листинг 4.1 демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now — функция VBScript, возвращающая текущий момент времени и дату. Если текущий час меньше 12, то приветствие задается в форме «Доброе утро!» От полудня до шести вечера сообщение имеет вид «Добрый день!», а после шести — «Добрый вечер!»

Листинг 4.1.Простой пример ASP.

Simple ASP Example

11 And Hour(Now) 17 Then

strGreeting = «Добрый вечер!»

Обратите внимание на код в листинге, окруженный специальными символами: угловыми скобками и знаками процента ( ). Такие символы означают, что это серверный код, который выполняется перед тем, как страница будет на самом деле послана программе просмотра. Если бы Вы посмотрели в Internet Explorer на результирующий HTML-текст, то увидели бы следующее (в предположении, что сейчас еще не вечер, но уже не утро):

Simple ASP Example

В этом-то и состоит суть ASP. Результат исполнения кода — обыкновенный HTML! Эту страницу можно просматривать любой программой просмотра: не только Internet Explorer, но и, например, Netscape Navigator. Иными словами, ASP предоставляет разработчику подлинную платформенную независимость

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

Скорее всего, Вы будете писать свои сценарии на VBScript, но ASP поддерживает и JavaScript. В отличие от сценариев на клиентской стороне, здесь выбор языка абсолютно не создает проблем совместимости с различными программами просмотра, поскольку весь код исполняется на сервере.

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

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

Объекты и компоненты.На самом простом уровне создание ASP-страницы — это ни что иное, как написание серверного кода для получения ожидаемого результата. Но VBScript не является полнофункциональным языком и, как только Вы приступаете к построению более сложных страниц, его выразительных средств начинает не хватать. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы. Собственно говоря, в VBScript отсутствуют какие-либо встроенные средства доступа к каким бы то ни было внешним источникам данных. Так как же в таком случае при помощи ASP выполняются такие сложные действия, как доступ к данным? Ответ будет таким: нужно дополнить VBScript объектами и компонентами ASP.

ASP-объекты и компоненты — это не что иное, как компоненты ActiveX, подобные обычным DLL ActiveX, с которыми Вы наверняка работали в Microsoft Visual Basic. Различие между объектами и компонентами ASP состоит в том, каким образом они появляются в программе. ASP-объекты — это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server. А вот ASP-компоненты представляют собой DLL, существующие вне структуры ASP. Эти компоненты могут быть написаны на любом языке, а некоторые по­лезные ASP-компоненты просто поставляются в комплекте с Visual InterDev. ASP-компо­ненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.

Файл GLOBAL.ASA.Одна из главных трудностей разработчика для Интернета, независимо от того, какую технологию он использует, состоит в том, как сложно создать в Интернете настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой по сути лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе. Коренная проблема для всех Web-приложений такова: как показать, что это именно приложение?

Определить приложение в среде Microsoft Windows довольно просто. Приложение запуска­ется двойным щелчком значка и завершается, когда в меню File выбран пункт Exit. В проме­жутке между двумя этими событиями данные хранятся в переменных. Но для Интернет-при­ложений это не так. Как определить, когда приложение начинается, а когда заканчивается? Можно сказать, что приложение начало работу, если пользователь зашел на узел и просмат­ривает одну из его страниц. Но что если он переходит к другому узлу, а через пять минут возвращается? Приложение все еще активно? А если пользователь отсутствовал час или два?

Проблема определения моментов запуска и завершения приложения оказывает серьезное влияние на правильное управление переменными и последовательностью выполнения. К счастью, ASP предлагает решение. Оно состоит в том, что для определения начала и завер­шения — как всего приложения, так и отдельных пользовательских сессий — используется специальный файл под названием GLOBAL.ASA. На этот файл возложено реагирование на четыре ключевых события узла: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии). В листинге 4.2 приведен типичный файл GLOBAL.ASA.

Листинг 4.2.Файл GLOBAL.ASA.

Для обозначения разделов сценария GLOBAL.ASA содержит теги

Хотя GLOBAL.ASA отмечает начало и завершение приложения при помощи событий, оста­ется неясным, что же все-таки составляет собственно приложение. Одна из рабочих форму­лировок, предложенная Microsoft, определяет Интернет-приложение как виртуальный ката­лог со всеми его файлами. Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.

Согласно этому определению с приложением одновременно могут работать несколько про­грамм просмотра. Но событие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога. Когда затем страницы из этого ката­лога запрашивают другие пользователи, возбуждается только событие Session_OnStart.

В то время как приложение может относиться к нескольким программам просмотра, обра­щающимся к одному и тому же множеству Web-страниц, сессия касается какой-то одной программы просмотра, обращающейся к тем же Web-страницам. Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога. Если же пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd. Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.

В качестве примера рассмотрим следующий сценарий. Два пользователя намереваются посе­тить на Web-узле приложение Magazine. Пользователь 1 оказывается проворнее и быст­ренько запрашивает Web-страницу DEFAULT.ASP. Тут же возбуждаются события Application_OnStart и Session_OnStart. Буквально пятью минутами позже к приложению обращается пользователь 2. Поскольку пользователь 1 как-то проявлял себя в течение последних 20 минут, приложение Magazine активно. Следовательно, возбуждается только событие Session_OnStart, сигнализируя о начале новой сессии. Кроме того, теперь для завершения приложения необходимо, чтобы завершились обе сессии.

В течение следующих 15 минут пользователь 1 не запрашивает ни­каких страниц приложе­ния Magazine. Поскольку он не проявлял активности на протяжении 20 минут, ASP приходит к выводу, что пользователь 1 закончил свою работу с приложением, и возбуждает событие Session_OnEnd. Но приложение все еще активно, поскольку в течение последних 20 минут к нему обращался пользователь 2.

Пользователь 2 работает с приложением еще час, то и дело запрашивая новые Web-страницы. Но в конце концов он отключается, а через 20 минут после того, как он покинул узел (точнее, в последний раз запросил Web-страницу приложения), возбуждается событие Session_OnEnd. Поскольку пользователь 2 был последним пользователем данного приложения, оно завершается, и возбуждается событие Application_OnEnd.

В ASP есть несколько встроенных объектов, которые доступны разработчику. Эти объекты помогают управлять многими вещами: от переменных, до передачи форм. Работать с ними легко, они вызываются из кода напрямую без какого-то особого синтаксиса.

Объект Application.Объект Application (приложение) позволяет создавать переменные приложения (application variables) — переменные, доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога.

В листинге 4.3 приведен пример программы, которая использует Объект Application. В нем переменная приложения служит для отслеживания времени последнего обращения к страницам приложения.

Листинг 4.3.Объект Application.

Эта страница последний раз посещалась:

Создание переменной приложения сводится к адресации объекта Application именем новой переменной, которую вы хотите создать. Например, следующий код создает новую переменную приложения с именем Company и присваивает ей значение NewTech.

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

Поскольку такие переменные доступны нескольким пользователям одновременно, вы не сможете гарантировать, что два пользователя не попытаются одновременно присвоить одной и той же переменной разные значения. Для разрешения подобных коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, а не только переменную, вы хотите изменить, поэтому сразу же после изменения значения переменной разблокируйте объект:

Илон Маск рекомендует:  Аргументы функции main()

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

Объект Session.Зачастую разработчиков меньше интересуют данные, совместно используемые несколькими пользователями, зато гораздо больше — данные, связанные с конкретным пользователем. ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables).

Листинг 4.4 демонстрирует, как определить несколько переменных сессии в файле GLOBAL.ASA. Само по себе их определение так же просто, как и в случае переменных приложения. Все, что нужно сделать — это адресовать объект Session именем переменной, которую вы хотите создать. Основное различие между переменными этих объектов — их области видимости. Переменные сессии предназначаются для одного пользователя и живут, пока пользователь поддерживает сессию. Как только в течение 20 минут (по умолчанию) пользователь не обращается к страницам данного виртуального каталога, данные пропадают.

Листинг 4-..Создание переменных сессии.

Переменные сессии можно создавать на любой Web-странице или в файле GLOBAL.ASA, а доступны они на любой Web-странице приложения, в котором эти переменные были первоначально созданы. Получить значения переменных сессии можно, считывая их из объекта Session. Следующий фрагмент кода считывает переменные сессии, созданные в листинге 4.4, и выводит их в полях ввода:

Ранее мы определили Интернет-приложение как лишенные статуса транзакции между Web-сервером и программой просмотра. Как же тогда ASP запоминает переменные сессии для каждого пользователя приложения? Ответ будет таким: эти переменные сохраняются на сервере для каждого клиента. Программа просмотра получает от сервера уникальный идентификатор, позволяющий определить, какой набор переменных кому принадлежит. Клиент этот идентификатор (Globally Unique Identifier, GUID) сохраняет, а впоследствии посылает серверу и получает именно ему предназначенные данные. Таким образом каждый клиент может иметь свой набор данных в каждом Интернет-приложении.

Осталось сказать, что для установки или считывания впемени жизни сессии (в минутах) применяется свойство Timeout объекта Session:

Объект Request.Для передачи данные клиенту создается Web-страница, а для передачи данных в обратном направлении программа просмотра использует отправку формы (form submission). В форме содержатся текстовые поля, переключатели и т.п. Клиент размещает введенные данные в этих полях и пересылает пакет серверу. Процессом передачи формы управляют два атрибута тега

Элемент формы с типом SUBMIT — это кнопка, нажатие которой пользователем заставляет программу просмотра упаковать данные формы и отправить их. Формат пересылки данных определен строго и сервер знает, чего ожидать от клиента. Данные имеют вид пар Поле=Значение,отсылаемых серверу в формате открытого текста. Если в предыдущем примере ввести в поле Name NewTech и в поле Email, то сценарию DATA.ASP будет послан следующий текст:

На сервере эти данные можно вновь разобрать по полям и использовать в любых целях. Вот тут-то и нужен объект Request. Он используется в ASP для разбора полученных от клиента данных. Для работы с объектом Request просто сообщите ему имя поля, значение которого хотите получить, и объект вернет вам это значение. Например, следующий код вернет вам значение поля Name:

Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию. Если для отправки данных используется метод GET или сценарий вызывается с передачей параметров прямо в гиперссылке

то для разбота данных применяют свойство Request.QueryString, который работает так же, как Request.Form. Следующий фрагмент кода вернет значение поля Name из гиперссылки:

Другое свойство — Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра. А листинг 4.5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.

Листинг 4.5.Определение компьютера пользователя.

Вы вошли с компьютера

Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.

Объект Response.Этот объект управляет содержимым страницы, которую ASP возвращает программе просмотра. Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response. Так что следующие две строки кода эквивалентны:

Поскольку объект Response используется очень часто, такое сокращение оправдано.

Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти. Рассмотрим такой фрагмент кода, показывающий текущее время и дату:

Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно. В листинге 4.6 приведена исправленная версия примера, устаревающая уже в момент загрузки.

Листинг 4.6.Страница, устаревающая уже в момент загрузки.

Forcing a Page to Expire

Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:

Объект Server.Объект Server (сервер) представляет собой в некотором роде свалку — в том смысле, что предоставляемые им функции никак не связаны между собой, за тем исключением, что все они полезны разработчику для Интернета. Пожалуй, самая важная из всех функций объекта Server — это метод CreateObject, который создает экземпляр компонента ActiveX. Причем это может быть как встроенный компонент, входящий в комплект поставки, так и тот, который написали Вы сами на любом языке. В любом случае использование компонента ActiveX на сервере требует вызова метода CreateObject.

Аргументом метода CreateObject служит ProgID (программный идентификатор) требуемого компонента ActiveX. ProgID — это содержательное имя компонента, такое как Excel.Sheet или Word.Basic. Следующая строчка показывает, как при помощи CreateObject создать экземпляр компонента с ProgID Excel.Sheet.

Set MyObject = Server.CreateObject(«Excel.Sheet»)

Другим полезным методом объекта Server является MapPath, возвращающий фактический путь, соответствующий заданному виртуальному каталогу.

Компоненты ASP — это на самом деле просто компоненты ActiveX, наподобие тех, что Вы можете сами создать на Visual Basic или Visual C++. Но эти компоненты написаны Microsoft и поставляются вместе с Visual InterDev. Они предназначены для выполнения полезных для Web-узлов задач общего характера, включая доступ к данным. Создать их на своей странице Вы можете при помощи метода CreateObject объекта Server, а как только они созданы, смело обращайтесь к их свойствам и методам для выполнения нужных Вам задач.

Компонент ActiveX Data Objects.Самым полезным изо всех компонентов ASP следует признать компонент доступа к базам данных, называемый также ActiveX Data Objects, или сокращенно ADO. Он и содержащиеся в нем объекты применяются для чтения и записи данных в источники данных ODBC при публикации в Web информации из баз данных.

Объект Connection (подсоединение) создается методом CreateObject объекта Server, и ссылка на него помещается в переменную. Когда объект создан, его можно использовать для открытия подсоединения к любому источнику данных ODBC. Следующий фрагмент кода устанавливает подсоединение к источнику данных ODBC с названием Publications:

‘ Создаем объект Connection

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

‘ Открываем подсоединение к источнику данных

objConnection.Open «Publications», «sa», «» %>

Здесь objConnection — переменная для объектной ссылки на экземпляр объекта Connection. Метод Open устанавливает подсоединение, принимая в качестве аргументов имя источника данных, идентификатор пользователя и пароль.

Когда подсоединение установлено, получать информацию из источника данных можно при помощи объекта Recordset (набор записей). Этот объект умеет выполнять оператор SELECT языка SQL и возвращать набор записей, удовлетворяющих этому запросу. Как и объект Connection, Recordset создается методом CreateObject. В следующем примере программа выполняет оператор SELECT над источником данных, представленным переменной objConnection:

После того, как записи получены, для передвижения по ним можно обращаться к методам MoveFirst, MoveLast, MoveNext и MovePrevious. Затем метод Write объекта Response помещает данные на Web-страницу, которая и посылается программе просмотра. В листинге 4.7 приведен полный пример ASP-страницы, которая строит список пользователей, со­держащихся в источнике данных Data.

Листинг 4.7.Построение списка при помощи ADO.

Одна из основных задач в управляемом данными Web-приложении — управление информацией в объекте Recordset. Очень часто простой запрос возвращает гораздо больше данных, чем имеет смысл показывать. Давайте, например, посмотрим, что происходит, когда Вы обращаетесь к какой-либо поисковой системе в Интернете. Поисковая машина, получив ключевое слово, возвращает ссылки на узлы, где это ключевое слово встречается. Но зачастую обнаруживаются тысячи узлов, содержащих данное ключевое слово. Совершенно очевидно, что показать все эти узлы на одной Web-странице совершенно невозможно.

Выход состоит в разбиении на страницы (paging). Этот механизм реализован во всех поисковых системах для передачи за один раз некоей порции результатов запроса, скажем, из 10 записей. Теперь пользователь может эффективно работать с полученной информацией. Поддерживает разбиение на страницы и ADO — посредством нескольких свойств объекта Recordset: PageSize, PageCount и AbsolutePage.

При получении набора данных можно указать, что записи следует разбить на страницы. Количество строк набора данных, составляющих страницу, задается значением свойства PageSize. Затем можно определить общее количество страниц в наборе данных посредством свойства PageCount. А доступ к заданной странице обеспечивает свойство AbsolutePage.

В листинге 4.8 приведен полный пример, в котором пользователь может просматривать 10 записей за раз. Переменная сессии CurrentPage отслеживает текущую страницу. Пользователь может перейти к предыдущей порции данных или к следующему набору из 10 записей, выбрав одну из двух гипертекстовых ссылок на странице.

Листинг 4.8.Разбиение набора данных на страницы средствами ADO.

Asp компонент ad rotator

Havnt imlimented an ad rotator in about two years, here my code from then:

1..Place this where you want the ads to appear:

2..The contents of the adrotator.asp:
«» Then

Dim txtAd, objAd

Set objAd = Server.CreateObject(«MSWC.AdRotator»)

txtAd = objAd.GetAdvertisement(«adlist.txt»)
End if
3..The contents of adList.asp:
redirect adrotator.asp
border 0
height 60
width 400
go to
go to
go to

In the example above all three files are to be placed in the root of your web site, place the images in a folder called add. If you do this the above code is cut n paste

О ASP компонент ротатора Ad и версии IIS

ПО КОТОРЫМ IIS компонентов Работает ли ASP AdRotator? Как проверить версию IIS на моем компьютере?

1 ответ

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

AdRotator устанавливается по умолчанию на IIS6 (Win 2003), но не на IIS7 (победа 2008) года. Я считаю, что это возможно, чтобы установить его на более поздние версии, если вы можете найти копию библиотеки DLL

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL