您现在的位置:龙卷风首页 ›› 情感日记 ›› 阅读文章

[asp]基于application和session的简明网站访问统计程序

我自己写的一个基于application和session的asp简明统计程序.

原创作品,转载请注明出处。

<SCRIPT LANGUAGE = "VBSCRIPT" RUNAT="SERVER">
'===============================================================
'简明网站访问统计程序
'Author: 不见不散
'Version: 1.1
'撰写时间: 2006-1-21
'===============================================================
 Sub Application_OnStart
  '==============
  '在线人数
  '==============
  Application("online") = 0
  '==============
  '连接数据库
  '==============
  Application("str_conn") = "Provider = Microsoft.jet.oledb.4.0;data source = " & Server.MapPath("database\spider.mdb")
  Dim conn
  Set conn = Server.CreateObject("Adodb.Connection")
  conn.open Application("str_conn")
  '==============
  '获取数据
  '==============
  Dim rs,sql,TimeNow
  Set rs = Server.CreateObject("Adodb.RecordSet")
  sql = "Select * from stat"
  TimeNow = now()
  rs.open sql,conn,1,3
  '同一天的Application重启; 
  If Day(rs("today")) = Day(TimeNow) Then
   Application("now") = rs("today")
   '总访问记录
   Application("total") = rs("totalCount")
   '今天访问数
   Application("today") = rs("todayCount")
   '昨天访问数
   Application("yestoday") = rs("yestodayCount")
  '不同天的Application重启;
  Else
   '更新时间
   rs("today") = TimeNow
   '重获时间
   Application("now") = TimeNow
   '总访问记录
   Application("total") = rs("totalCount")
   '今天记录设为1
   Application("today") = 1
   '昨天记录
   Application("yestoday") = rs("todayCount")
  End If
   rs.Update
  '=============
  '清理
  '=============
  rs.Close
  Set rs = Nothing
  conn.Close
  Set conn = Nothing
 End Sub
'================================================================
 Sub Application_OnEnd
  '================
  '连接数据库
  '================
  Dim conn
  Set conn = Server.CreateObject("Adodb.Connection")
  conn.open Application("str_conn")
  '================
  '获取数据
  '================
  Dim rs,sql,TimeNow
  sql = "Select * From stat Order by id"
  TimeNow = now()
  Set rs = Server.CreateObject("Adodb.RecordSet")
  rs.Open sql,conn,1,3
 
  rs("totalCount") = Application("total")
  rs("yestodayCount") = Application("yestoday")
  rs("todayCount") = Application("today")
  rs("today") = TimeNow
  rs.Update
  '===============
  '清理
  '===============
  rs.close
  Set rs = Nothing
  conn.Close
  Set conn = Nothing
 End Sub
'================================================================
 Sub Session_OnStart
  '===========
  '是否换天
  '===========
  If Day(Application("now")) <> Day(now()) Then
   Application("now") = now()
   Application("yestoday") = Application("today")
   Application("today") = 1
  End If
 
  '在线计数
  Application.Lock()
  Application("online") = Application("online") + 1
 
  '访问计数
  Application("total") = Application("total") + 1
  Application("today") = Application("today") + 1
  Application.UnLock()
 End Sub
'================================================================
 Sub Session_OnEnd
  If Day(Application("now")) <> Day(now()) Then
   Application("now") = now()
   Application("yestoday") = Application("today")
   Application("today") = 0
  End If

  Dim StartTime
   StartTime = (Timer/60) mod 30
  If StartTime > 25 Then
   Call randRun
  End If
 
  Application.Lock()
  Application("online") = Application("online") - 1
  Application.UnLock()
 End Sub
'================================================================
 Sub randRun
  '=============================
  '随机储存,减少丢失数据机率。
  '=============================
  Dim StartTime,TimeNow
   StartTime = (Timer/60) mod 60
   TimeNow = now()
  Dim rs,sql,conn
   Set conn = Server.CreateObject("Adodb.Connection")
   conn.open Application("str_conn")
   Set rs = Server.CreateObject("Adodb.RecordSet")
   sql = "select * from stat order by id"
   rs.Open sql,conn,1,3
   rs("totalCount") = Application("total")
   rs("todayCount") = Application("today")
   rs("yestodayCount") = Application("yestoday")
   rs("today") = TimeNow
   rs.Update
   rs.Close
   Set rs = Nothing
 End Sub
</SCRIPT>

 

作者 不见不散 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

内容/Content