这两天有好几个老的ASP网站要改,其中有要求加记数器,为图简单,就用文本文件的形式存储记数。以前用ifream的形式嵌入,不能很好的控制记数器显示的风格,现在改进了一下,可以很好的与嵌入板块风格结合了。把做的分享一下:
一、需要有三个文件:
1、Global.asa 全局应用程序文件,执行Application_Start、Session_Start事件
2、GetCount.asp 读取当前记录
3、Count.txt 存储访问数
二、代码:
1、Global.asa
1
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
2
SUB Application_OnStart
3
On Error Resume Next
4
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
5
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
6
IF not oFSO.FileExists(sFilePath) THEN
7
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
8
oFile.Write("1")
9
oFile.close
10
Application("TotalCount")=1
11
ELSE
12
Set oFile = oFSO.OpenTextFile(sFilePath)
13
NCount=OFile.ReadLine
14
Application("TotalCount")=Clng(nCount)+1
15
oFile.close
16
Set oFile=oFSO.OpenTextFile(sFilePath,2)
17
oFile.Write(Application("TotalCount"))
18
oFile.close
19
End IF
20
err.clear
21
END SUB
22
</SCRIPT>
23
24
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
25
SUB Application_OnEnd
26
END SUB
27
</SCRIPT>
28
29
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
30
SUB Session_OnStart
31
On Error Resume Next
32
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
33
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
34
IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
35
'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值
36
IF not oFSO.FileExists(sFilePath) THEN
37
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
38
oFile.Write("1")
39
oFile.close
40
Application("TotalCount")=1
41
ELSE
42
Set oFile = oFSO.OpenTextFile(sFilePath)
43
NCount=OFile.ReadLine
44
Application("TotalCount")=Clng(nCount)+1
45
oFile.close
46
Set oFile=oFSO.OpenTextFile(sFilePath,2)
47
oFile.Write(Application("TotalCount"))
48
oFile.close
49
End IF
50
ELSE
51
Application("TotalCount")= Application("TotalCount")+1
52
IF not oFSO.FileExists(sFilePath) THEN
53
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
54
oFile.Write(Application("TotalCount"))
55
oFile.close
56
ELSE
57
Set oFile=oFSO.OpenTextFile(sFilePath,2)
58
oFile.Write(Application("TotalCount"))
59
oFile.close
60
End IF
61
End IF
62
err.clear
63
End Sub
64
</SCRIPT>
65
66
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
67
SUB Session_OnEnd
68
END SUB
69
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>2
SUB Application_OnStart3
On Error Resume Next4
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt5
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")6
IF not oFSO.FileExists(sFilePath) THEN7
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件8
oFile.Write("1")9
oFile.close10
Application("TotalCount")=111
ELSE12
Set oFile = oFSO.OpenTextFile(sFilePath) 13
NCount=OFile.ReadLine14
Application("TotalCount")=Clng(nCount)+115
oFile.close16
Set oFile=oFSO.OpenTextFile(sFilePath,2)17
oFile.Write(Application("TotalCount"))18
oFile.close19
End IF20
err.clear21
END SUB22
</SCRIPT>23

24
<SCRIPT LANGUAGE=VBScript RUNAT=Server>25
SUB Application_OnEnd26
END SUB27
</SCRIPT>28

29
<SCRIPT LANGUAGE=VBScript RUNAT=Server>30
SUB Session_OnStart31
On Error Resume Next32
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt33
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")34
IF Application("TotalCount")=0 or Application("TotalCount")="" THEN35
'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值36
IF not oFSO.FileExists(sFilePath) THEN37
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件38
oFile.Write("1")39
oFile.close40
Application("TotalCount")=141
ELSE42
Set oFile = oFSO.OpenTextFile(sFilePath) 43
NCount=OFile.ReadLine44
Application("TotalCount")=Clng(nCount)+145
oFile.close46
Set oFile=oFSO.OpenTextFile(sFilePath,2)47
oFile.Write(Application("TotalCount"))48
oFile.close49
End IF50
ELSE51
Application("TotalCount")= Application("TotalCount")+152
IF not oFSO.FileExists(sFilePath) THEN53
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件54
oFile.Write(Application("TotalCount"))55
oFile.close56
ELSE57
Set oFile=oFSO.OpenTextFile(sFilePath,2)58
oFile.Write(Application("TotalCount"))59
oFile.close60
End IF61
End IF62
err.clear63
End Sub64
</SCRIPT>65

66
<SCRIPT LANGUAGE=VBScript RUNAT=Server>67
SUB Session_OnEnd68
END SUB69
</SCRIPT>
2、GetCount.asp
1
<%="document.write('" & Application("TotalCount") & "')"%>
<%="document.write('" & Application("TotalCount") & "')"%>
3、需要显示计数器的地方加入,HTML也可以:
1
<script type="text/javascript" src="../GetCount.asp"></script>
<script type="text/javascript" src="../GetCount.asp"></script>