ASP编写计数器的优化方法
来源:asp之家 发布时间:2009-01-21 19:46:00
标签:计数器,统计,优化,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") & "位访客!")
%>


猜你喜欢
- 我们使用的是QWebview模块,这里也主要是展示下QWebview的用法。之前在网上找了半天的解析网页的内容,都不是很清楚。这是核心代码:
- 如果对自然语言分类,有很多中分法,比如英语、法语、汉语等,这种分法是最常见的。在语言学里面,也有对语言的分类方法,比如什么什么语系之类的。我
- 发送端代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import socketimport stru
- Oracle数据库各类控制语句的使用是本文我们主要要介绍的内容,包括一些逻辑控制语句、Case when的使用、While的使用以及For的
- 字符串占位符的"{0:2}"看到这么奇怪的占位符,估计都是一脸懵逼。而且网上搜不到。其实很简单,试一下就知道了。prin
- 本文实例为大家分享了python批量读取文件名并写入txt中的具体代码,供大家参考,具体内容如下先说下脚本使用的环境吧,在做项目的过程中需要
- JavaScript Date.toDateString()方法返回一个Date对象的人类可读形式的日期部分。语法Date.to
- MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。临时
- python新手一枚,操作系统Win10 64 bit,Python版本,3.7因为某个脚本需要用到win32con 和win32api模块
- PHP 中的 Interface 是一种非常重要的特性,它允许开发人员定义一组规范或者约束,以确保类之间的互操作性和兼容性。在本文中,我们将
- 代码实现:<!DOCTYPE html><html lang="en"><head>
- 素数(prime number)也叫质数,为大于1的且除1和本身以外不再有其他因数的自然数,与之相对的是合数,素数有无限个。计算小于N的素数
- 1. mean() 函数定义:numpy.mean(a, axis=None, dtype=None, out=None, keepdims
- 本文实例讲述了RC4文件加密的python实现方法。分享给大家供大家参考。具体分析如下:基于RC4流加密算法,使用扩展的16*16的S盒,3
- 1. ASP与Access数据库连接: 代码如下:dim strConn dim conn strConn = "Provide
- isset($var); //为false 没有定义没有定义为假 $var = ''
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数
- ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配
- 一、使用全局变量保存单例这是最简单的实现方法function Person(){ this.createTime=new Da
- 目录:分析和设计组件编码实现和算法用 Ant 构建组件测试 JavaScript 组件我们走到哪儿了?前两期思考了太多东西,你是否已有倦意?