ASP编写计数器的优化方法
2009-05-12 15:20:00来源:未知 阅读 ()
很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便。笔者研究过很多用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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:asp中常用的文件处理函数
- asp中设置session过期时间方法总结 2020-03-30
- asp中将有双引号标题入库的方法 2020-03-25
- ASP连接Access数据库的几种方法 2020-03-25
- asp 中文乱码问题解决方法 2020-03-25
- ASP中DateAdd函数中日期相加或相减使用方法 2020-03-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash