Программирование » ASP.NET » Знакомство с ASP. Счетчик...

Знакомство с ASP: счетчик для IIS за 5 минут

В данной статье будут рассмотрены варианты создания счетчиков для сайтов построенных на базе IIS 3, 4, 5, PWS, GoAhead. Для некоторых счетчиков - любой сервер поддерживающий работу со скрипт - машинами Windows с помощью различных расширений и модулей.(Chili-ASP, ActivePerl). При написании статьи использованы материалы с сайтов:

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

Классификация

По признаку своей функциональности счетчики можно подразделить на счетчики:

  • с накоплением
  • в рамках сессии
  • ементами персонификации
  • с возможностью дальнейшего анализа информации о клиенте

По способу хранения информации:

  • хранение в переменных сессии (приложения)
  • хранение в файле на стороне сервера
  • хранение в файле на стороне клиента
  • хранение в базе данных
  • комбинированные

По способу визуализации:

  • текстовые
  • графические
  • информеры (как комбинация первых двух)

Cчетчик от Microsoft

Возможности: счетчик с накоплением, поддержка "виртуальных" сайтов, отдельных asp-страниц.

Для создания данного счетчика необходимо с сайта Microsoft скачать серверный компонент PageCounter и установить его. Весь код счетчика оформлен в виде ISAPI-dll (распространяется вместе с исходными текстами) и число обращений к конкретной странице или инициалиазация/сброс счетчика вызываются как метод серверного объекта PageCounter.

Для установки счетчика на сервер необходимо скопировать PageCnt.dll в каталог \\InetPub\\ASPSamp\\Components\\PageCnt\\DLL\\i386 и зарегистрировать его: regsvr32 PageCnt.dll В случае, если Вы планируете подсчитывать обращения к нескольким виртуальным сайтам, Вам необходимо конфигурировать их как приложения.

Счетчик поддерживает 2 метода HITS и RESET

Код инициализации счетчика для конкретного сайта:

Распологать его лучше всего в верхней части страницы, в первых строках.

<%

Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")

HitMe = MyPageCounter.Hits

%>

Отображение количества заходов:

Данный фрагмент размещайте сообразуясь с дизайном своего сайта.

<% =HitMe %>

Для подсчета на конкретной странице сайта код несколько изменится:

<%

Set MyPageCount = Server.CreateObject("IISSample.PageCounter")

MyPageCount.PageHit

HitMe = MyPageCount.Hits

%> <% =HitMe %>

или

<% Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")

%>

This Web page has been viewed <%= MyPageCount.Hits %> times.

<P>

Page Myscript.asp has been viewed

<%= MyPageCounter.Hits("/VirtualDir1/Myscript.asp") %> times.

Для того, чтобы запустить счетчик с какого-либо начального значения (12345) используйте следующий код:

<%

=HitMe + 12345

%>

Сброс счетчика (RESET).

<%

Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")

MyPageCounter.Reset

MyPageCounter.Reset("/VirtualDir1/Mypage.asp")

%>

Простейшиe счетчики

Возможности: счетчик с накоплением. Хранит информацию о количестве обращений в текстовом файле.

Используется объект VBScript (WSH) FileSystemObject.

Порядок действий

Создайте текстовый файл c:\\mycount.txt

Для инициализации счетчика укажите в текстовом файле начальное значение. На пример 0.

В тело вашей страницы впишите следующий код:

<%

'Декларирование переменных

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim fso, f, myCounter

'Создаем объект

Set fso = CreateObject("Scripting.FileSystemObject")

'открываем файл на чтение, и считываем из него ВСЕ содержимое

'если файл отсутствует, то создаем его (Trye).

Set f = fso.OpenTextFile("c:\\mycount.txt", ForReading, True)

'отключаем обработку ошибок

On error resume next

'считываем содержимое, в случае пустого (Empty)значения

'присваиваем значение 0 переменной myCounter

myCounter = f.readAll

If myCounter = Empty Then

myCounter = 0

'если все в порядке, то увеличиваем значение переменной myCounter на 1

Else

myCounter = myCounter + 1

End If

'открываем файл на запись и обновляем значение счетчика

Set f = fso.OpenTextFile("c:\\mycount.txt", ForWriting, True)

f.Write myCounter

'закрываем файл

f.Close

'очищаем память

Set f = nothing

Set fso = nothing

%>

В соответствии с дизайном разместите счетчик.

<%

= myCounter

%>

Счетчик с накоплением. Хранит данные в переменных сесии ( приложения ), отображает количество пользователей, находящихся в данный момент на сайте.

В рут - каталоге сайта создайте файл global.asa

Код:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnStart

Session.Timeout = 5

Application.lock

Application("myCounter") = Application("myCounter") + 1

Application("visitors") = Application("visitors") + 1

Application.unlock

END SUB

</script>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnEnd

Application.lock

Application("visitors") = Application("visitors") - 1

Application.unlock

END SUB

</script>

В теле asp-страницы разместите код:

<%

Dim vist, currentcount

visit = Application("visitors")

currentcount = Application("myCounter")

%>

В соответствии с дизайном поместите счетчик общего числа обращений/текущего количества пользователей

<%

= currentcount & "/" & visit

%>




Евгений Кондратов aka Udjin http://internet-technologies.ru

Отзывы (через аккаунты в социальных сетях Вконтакте, Facebook или Google+):

Оставить отзыв с помощью аккаунта ВКонтакте:

Оставить отзыв с помощью аккаунта FaceBook:

Оставить отзыв с помощью аккаунта Google+: