|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
很多的网站都有记数器,用来记录网站的访问量,这给网站治理员即时了解本网站的运行及访问情况提供了很多的方便。笔者研究过很多用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下通过。 返回类别: 教程 上一教程: 基于ACCESS数据库的纯ASP论坛制作心得 下一教程: ASP系列讲座(五)使用变量和常量 您可以阅读与"用ASP编写计数器的方式"相关的教程: · 用ASP编写计数器的优化方式 · 用ASP编写计数器 · 用ASP编写图片计数器 · 编写“公平”的ASP图形计数器 · ASP实例之计数器程序详解 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |