这两天有好几个老的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>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

2、GetCount.asp
1
<%="document.write('" & Application("TotalCount") & "')"%>

3、需要显示计数器的地方加入,HTML也可以:
1
<script type="text/javascript" src="../GetCount.asp"></script>
