被动统计网站的在线数量

当你不能在学校上网时,你必须改变博客程序,不要做任何事情,再加上一个关于在线博客数量的统计数字。我写了一个博客程序的组合,并应用到我的博客。

在fdream博客,一些在ASP统计数进行计数的网上可以看到这里的方式。

为了兼顾精度和效率,我使用了一个被动的方式来统计在线人数,即更新在线用户人数时有新的游客。不知道有没有网上已采用这种方法,但我现在用的完全是自己的思维^ _ ^。

在l-blog,会话是用来确定访问者是否是新访客,会议时间通常是20分钟。它可以用来计算在线人的数量,也就是说,在20分钟内,访问者认为它是在线的。

在commond.asp,下面的代码是用来记录访问记录:
复制代码代码如下所示:
对访客的IP guest_ip
如果会话(guestip )<> guest_ip然后
昏暗的guest_agent,guest_refer
guest_agent和guest_refer访问记录的使用
guest_agent =装饰(request.servervariables(http_user_agent ))
guest_refer =装饰(request.servervariables(http_referer ))
添加访问记录
conn.execute(插入blog_counter(coun_ip,coun_agent,coun_refer)值
('guest_ip ',' guest_agent ',' guest_refer)
访问次数加1
conn.execute(更新blog_info集blog_visitnums = blog_visitnums 1 )
sqlquerynums sqlquerynums = 2
用会话保存访问者IP
会议(guestip )= guest_ip
最后如果

我对数据库做了一些修改,以实现在线统计的数量。

1。1场(整数)添加到表中blog_info,这是用来保存当前网站的在线人数的数量

2。添加表格blog_onine,和字段设置为:ol_id(自动编号),ol_ip(字符、20),ol_time(日期/时间,默认值了)。

修订后的网站统计数字如下:
复制代码代码如下所示:
站点统计代码
如果会话(guestip )<> guest_ip然后
原始站点访问计数器
conn.execute(插入blog_counter(coun_ip,coun_agent,coun_refer)
值('guest_ip ',' guest_agent ',' guest_refer)
conn.execute(更新blog_info集blog_visitnums = blog_visitnums + 1)
sqlquerynums = sqlquerynums + 2
会议(guestip )= guest_ip
在线统计
确定在线列表中是否是一个已经过时的访问者。
如果conn.execute(select count(ol_id)从blog_online
DateDiff(n,ol_time,现在())> 20)(0)> 0
如果有记录覆盖超时访问者
conn.execute(更新blog_online集ol_ip =guest_ip ,
ol_time =现在()在哪里ol_id(选择前1 ol_id
从blog_online哪里DateDiff(n,ol_time,现在(> 20))))
其他的
如果没有,则添加在线访问者记录。
conn.execute(插入blog_online(ol_ip)
价值观(guest_ip )
最后如果
在线计算博客的数量
blog_onlinenums = conn.execute(选择不同的计数(ol_id)
从blog_online哪里DateDiff(n,ol_time,现在())<20)(0)
更新博客信息中的在线号码
conn.execute(更新blog_info集blog_onlinenums =blog_onlinenums )
sqlquerynums = sqlquerynums + 3
最后如果

这样,当地的参考变量blog_onlinenums需要在博客显示在线的人数都是正确的。

而且由于被动统计,博客页面执行时间的影响可以忽略。另外,这种统计博客在线人数的方法也有一定的准确性,能够满足一般的需要。