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

2016-01-29 18:42 8 1 收藏

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

【 tulaoshi.com - 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)  '如果文件不存在,则创建一个文

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

      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)  '打开文件

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

           oFile.Write(Application("TotalCount"))   '写入当前的计数值

           oFile.close

           Application("LastwriteTime")= Now  '设置最后一次访问的时间为当前时间

       END IF

End IF

Response.Write("欢迎光临本网站,你是访问本网站的第" & Application("TotalCount") & "位访客!")

%

本例程在Windows2000 IIS5.0下通过。

 

来源:http://www.tulaoshi.com/n/20160129/1506948.html

延伸阅读
标签: PHP
作者: 杨鹏 PHP是现在流行的服务器端脚本语言,它的功能非常强大,你可以利用它做几乎任何事。不需要复杂的变量和代码,你就可以非常迅速地做出漂亮的计数器来。下面,就让我们一步一步的来做。 其实,计数器的原理大家都知道,首先,确定一个记录文件,例如counter.txt或 counter.log,每一次访问这个页面,就对这个文件加1,然后把结果...
标签: ASP
  网页计数器DIY 随着网络大行其道,网页计数器也流行起来。事实上大多数网站均有网页计数器,用以反映该网站的访问量。计数器的来源很广,Frontpage等网页编辑器自带了网页计数器,有的站点也提供免费的计数器下载。其实熟悉了ASP编程后,自己做一个计数器很容易。下面介绍一种实现方法。 计数器原理是:在第一次使用网页时置初始值1,以...
标签: PHP
  1)文本计数器 <?php $countfile="/count.txt";  //设置保存数据的文件 if (!file_exists($countfile)){//判断文件是否存在 exec( "echo 0 $countfile"); } $fp = fopen($countfile,"rw"); $length=filesize($countfile); $num = fgets($fp,$length); $num += 1; exec( "rm -rf $...
标签: Web开发
代码如下: script Language="javascript"  var seconds = 10;//记数时间  var handle;//事件柄  //开始记数器  function startTimer() {   handle = setInterval("timer()",1000);  }  //结束记数器  function stopTimer() { ...
标签: PHP
  概述: 此设计可以在本计数器基础之上设计计数分析程序,可以对页面访问、ip访问次数进行分析,并形成报表。 一、数据库设计 数据库采用mysql 相关文件:    createDatabase.sql        创建数据库           &nb...

经验教程

655

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部