上一篇:浅谈TeeChart组件在ASP中的应用 >>
优化你的计数器
很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便。笔者研究过很多用ASP编写的计数器程序,发现大部份都是在一个访客访问站点的时候就打文本文件或数据库,读取以前的计数值进行加1,然后再写入文件,若网站访问量很大,可能会对系统造成很大的负担,那么有没有优化的方法呢,笔者经过研究测试,答案是:有。
熟悉ASP的朋友都知道,ASP提供一个Application属性用来保存服务器的一些公共变量,我们可以用这个变量来保存记数器的信息。
思路是先设定两个Application变量,一个Application(“TotalCount”),用来保存记数值;另一个Application(“LastwriteTime”),用来保存上次把记数值保存到文件的时间。我们可以自己定义把计数值保存到文件的间隔时间,比如1小时、1天或者一个月。在有访客访网站的时候,让Application(“TotalCount”)进行加1,如果上次保存计数的时间与现在的时间差大于我们设定的保存时间间隔值,那么就把当前的计数值写入文件保存,这样就减少了程序的IO操作,节约了系统的负担。
为了避免发生意外,如断电或者服务器停止反应需待重启等,我们可以设定保存时间间隔为2小时,这样即使发生意外,损失也不会太大。
例程如下:
<%
Dim oFSO ‘’定义FSO组件对象
Dim oFile ‘’定义读写文件对象
Dim nCount ‘’定义从文件中读取的记数值
Dim sFilePath ‘’定义计数器保存文件的路径
Const iInterval=2 ‘’定义保存时间间隔为2小时
SFilePath=Server.MapPath("Count/Count.txt") ‘’假设计数器文件在根目录下的Count目录中,文件名为Count.txt
IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
‘’如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值
Set oFSO=Server.CreateObject("Scripting.FileSystemObject") ‘’实例化文件操作对象oFSO
IF not oFSO.FileExists(sFilePath) THEN
OFile=oFSO.CreateTextFile(sFilePath,true) ‘’如果文件不存在,则创建一个文
件
oFile.Write("1") 写入当前的计数值"1"
oFile.close
Application("TotalCount")=1
ELSE
Set oFile = oFSOt.OpenTextFile(sFilePath)
NCount=OFile.ReadLine
Application("TotalCount")=Clng(nCount)+1
OFile.close
End IF
Application("LastwriteTime")= Now ‘’设置最后一次访问的时间为当前时间
ELSE
Application("TotalCount")= Application("TotalCount")+1
IF DateDiff("H", Application("LastwriteTime"),Now)>iInterval THEN
‘’如果当前时间与上次保存计数值的时间差大于设定的时间间隔,则把计数值重新写入文件
Set oFSO=Server.CreateObject("Scripting.FileSystemObject") ‘’实例化文件操作对象oFSO
OFile=oFSO.OpenTextFile(sFilePath,true) ‘’打开文件
oFile.Write(Application("TotalCount")) ‘’写入当前的计数值
oFile.close
Application("LastwriteTime")= Now ‘’设置最后一次访问的时间为当前时间
END IF
End IF
Response.Write("欢迎光临本网站,你是访问本网站的第" & Application("TotalCount") & "位访客!")
%>
本例程在Windows2000 IIS5.0下通过。
下一篇:flash+asp小小研究· >>
相关文章:
- · windows200s.iis.asp网页中修改access记录时无效
- · 项目中的模块
- · ASP应用范例-分页_执行示意图
- · ASP应用范例-分页_代码部分
- · 将人民币的数字表示转化成大写表示
- · ASP中一个页面多个表单的提交
- · ASP中存储过程调用的两种方式,以及不采用存储过程的方式比较
- · 关于ASP的(VBScript)类,只希望给初学者看一看,希望对你们有帮助
- · 认识ASP内置的对象
- · ASP内置组件
- · ASP内置对象
- · ASP函数
- · 随机生成不重复记录的伪函数
- · ASP中模板思想的应用
- · ASP设计常见问题及解答精要-2
- · ASP设计常见问题及解答精要-1
- · 为你的网页加一个Loading !!!!
- · ASP分页显示之乱盖
- · 用ASP、VB和XML建立互联网应用程序(3)
- · 用ASP、VB和XML建立互联网应用程序(2)
- · 用ASP、VB和XML建立互联网应用程序(1)
- · 图片上传前取得尺寸
- · ASP操作Excel技术总结
- · Microsoft Word 对象
- · 如何在不刷新页面的情况下调用远程ASP
- · 关于<SELECT>的无限级联(省|市|县|乡|村|...)
- · ASP如何获取真实IP地址
- · 改进ASP应用程序中的字符串处理性能
- · ASP编程中15个非常有用的例子
- · ASP导出Excel数据的四种方法
- · 让你的ASP运行于非Windows平台
- · 测试访问者电脑的分辨率
- · 全面优化ASP应用程序的性能(转载)
- · Asp正则表达式在UBB论坛中的应用
- · 如何获得真实的ip
- · 面向对象的ASP技术:思考与实践
- · 文件上传之后
- · asp分页显示详论
