WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Знакомство с ASP: счетчик для IIS за 5 минут. Часть 3

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


Дата публикации: 17-03-2013

Рассмотрим 2 варианта информеров.

1. Информеры, которые загружаются с сервера как файл в графическом формате.

2. Динамически создающиеся в момент загрузки страницы.

В обоих случаях для создаия информера, - суть файла в графическом формате с какой - либо информационной нагрузкой, необходим серверный компонент создающий графические файлы. Один из лучших - ShotGraph. Разработчик - Михаил Чикалов. Возможности свободно  распространимой версии более чем достаточны.

Определимся с содержанием информера. К примеру,  нужен информер, который с заданной периодичностью  будет отображать информацию о соотношении обращений клиентов  различными броузерами (NN/IE).

Для получения данных воспользуйтесь базой описанной в предидущем примере. Поскольку серверный компонент ShotGraph умеет работать с WSH (Windows Scripting Host), то останется написать код скрипта, который с заданной периодичностью будет исполняться  WSH и перезаписывать файл информера.

Код vbs - файла:

' -- Для получения данных из базы воспользуемся уже имеющимся ODBC - ресурсом
' -- (смотри предидущую статью)

Set ConUser = CreateObject("ADODB.Connection")
myDSN="DSN=MyCounter;uid="";pwd="""
ConUser.Open myDSN
Set RsUser = CreateObject("ADODB.Recordset")

' -- IE Counter --
IESQLString = "SELECT Count(T_Counter.IdCounter) AS IECount FROM T_Counter HAVING " & _  "(((Left([IDClient],1))='I'));" ' -- можно использовать Left$ --
RsUser.Open(IESQLString), ConUser
IE=RsUser("IECount")
RsUser.Close

' -- NN Counter --
NNSQLString = "SELECT Count(T_Counter.IdCounter) AS NNCount FROM T_Counter HAVING " & _ "(((Left([IDClient],1))='N'));"
RsUser.Open(NNSQLString), ConUser
NN=RsUser("NNCount")
RsUser.Close

Set RsUser = nothing
ConUser.Close
Set ConUser = nothing

' -- Создаем файл информера

Set g=CreateObject("shotgraph.image")
g.CreateImage 80,50,4
'White color
g.SetColor 0,255,255,255
'Black color
g.SetColor 1,0,0,0
'Blue color
g.SetColor 2,&h99,&h99,&hcc

g.SetBgColor 2
g.SetBkMode "TRANSPARENT"
g.CreatePen "PS_SOLID",5,1
g.Rectangle 0,0,80,50


g.CreateFont "Times New Roman",0,18,0,True,True,False,False
g.SetTextAlign "TA_LEFT","TA_TOP"
g.SetTextColor 1
g.TextOut 15,5,"IE/NN"

g.CreateFont "Times New Roman",0,20,0,True,True,False,False
g.SetTextAlign "TA_LEFT","TA_TOP"
g.SetTextColor 0
g.TextOut 15,20,IE & "/" & NN

g.JpegImage 90,0,"test.jpg"
' -- файл создан

Cкопируйте код в файл и сохраните с расширением .vbs
После исполнения данного файла в указанном Вами каталоге (в данном случае - в том каталоге, из которого был запущен vbs - файл), будет создан файл информера "test.jpg"



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

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

В заголовке используйте конструкцию:

<%
Response.ContentType="image/gif"
Set g=Server.CreateObject("shotgraph.image")

' -- код --
' -- код --

img=g.GifImage(-1,1,"")
Response.BinaryWrite(img)
 %>

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Роберт Кийосаки:

    "Когда люди спрашивают: «С чего мне начинать?» или «Как быстро разбогатеть?», мой ответ их часто разочаровывает. Я просто говорю им то, что когда-то говорил мне богатый папа: «Если хочешь быть богатым, нужно быть финансово грамотным»."

    Опрос

    Ваша техника?

    Настольный компютер
    Ноутбук
    Смартфон
    iPad
    iPhone
    другое