用ASP编写计数器的优化方法

news/2024/7/7 11:37:16

 很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便。 笔者研究过很多用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下通过。


http://www.niftyadmin.cn/n/4076688.html

相关文章

(二)Linux文件管理,用户管理及文件权限管理(附高级权限)

CONTENTS 1 Linux文件管理 1.1 Linux目录结构 1.2 Linux文件类型 1.3 查看命令的类型 1.4 查看文件的详细属性 1.5 文件的一些基本操作 2 Linux用户管理 2.1 组的管理 2.2 用户的管理 2.3 sudo普通用户提权 3、文件权限管理 3.1 权限设置UGO 3.2 基本权限ACL 3.3 …

IMB MQ 报错问题记录

2019独角兽企业重金招聘Python工程师标准>>> 还有一些没有上传&#xff0c;可以去http://download.csdn.net/detail/wxmiy/9465179下载 转载于:https://my.oschina.net/yzbty32/blog/639415

移动端常见问题处理

前面的话 本文将详细介绍移动web开发中的常见问题 Input 【光标颜色】 默认情况下&#xff0c;光标颜色与字体颜色color相同&#xff0c;但也可以通过caret-color属性来单独设置 caret-color: auto; caret-color: transparent; caret-color: currentColor; caret-color: red; c…

谷歌大神Jeff Dean:大规模深度学习最新进展 zz

http://www.tuicool.com/articles/MBBbeeQ 在AlphaGo与李世石比赛期间&#xff0c;谷歌天才工程师Jeff Dean在Google Campus汉城校区做了一次关于智能计算机系统的大规模深度学习&#xff08;Large-Scale Deep Learning for Intelligent Computer Systems&#xff09;的演讲。本…

google日历web版本和app版区别

为什么80%的码农都做不了架构师&#xff1f;>>> web版本&#xff1a;没有提醒功能&#xff0c;但是有工作表功能 app版本&#xff1a;有提醒功能&#xff0c;但没有工作表功能 app的提醒功能在一定程度取代了web版本的工作表功能&#xff0c;且可以加入提醒功能&am…

品牌舆情、决策分析,数据中台模式的茅台云商实践解析

摘要&#xff1a;阿里云茅台数据中台项目负责人董芳英(晓草) 在2018云栖大会上海峰会数据中台专场做了题为《品牌舆情、决策分析&#xff0c;数据中台模式的茅台云商实践解析》 的精彩讲述,首先从价值角度介绍了关于茅台与数据中台相互结合解决了什么样的问题,其次从业务背景角…

(三)Linux存储管理(基本分区MBR和GPT、LVM管理、交换分区创建、RAID及lsof恢复文件)

CONTENTS 1 基本分区管理 1.1 MBR分区方式 1.2 GPT分区方式 2 LVM管理 2.1 创建LVM 2.2 VG管理 2.3 LV扩容 3 交换分区管理 4 磁盘阵列 RAID 5 lsof 恢复文件 1 基本分区管理 1.1 MBR分区方式 硬盘<2TB选择MBR MBR 14个分区&#xff08;4个主分区&#xff0c;扩…

如何准确定时运行ASP文件

在一定的时候&#xff0c;要定时的运行某个ASP文件去执行一个任务&#xff0c;如一个工厂在早上&#xff19;点钟要采集所有的电表的读数&#xff0c;当然这要通过IN SQL连接到各个电表中&#xff0c;我们现在就是用一个ASP文件把IN SQL中表的读数再集中到MS SQL中。 可能你看…