请教高手:关于数据库是txt后缀,如何定时储存?

chg148 2020-11-17 03:30:15
下面代码是:刷新一次随机从5到9之间增加访问次数。数据库是记事本格式的 count.txt


csdn论坛上有很多网友发帖说: “要是 觉得每次有用户进入网站,均对counter.txt写入太频繁,可以在session_onstart中设置,在application(“visitor”)为 十的倍数时 将计数值写进counter.txt。


这代码该怎么修改补充? 请教高手!!!谢谢




<%
'Option Explicit

'变量定义
Dim fileName, fs, txt, Content, counterLenth, displayMode

'属性设置
counterLenth=0 '设置显示数据的最小长度,如果小于实际长度则以实际长度为准
displayMode =2 '设置显示模式,1为文字,2为图片

fileName=Server.MapPath("count.txt")
Set fs=Server.CreateObject("Scripting.FileSystemObject")

'初始化
Function Init()

'检查文件是否存在,不存在则创建,并写入0
If Not fs.FileExists(fileName) Then
fs.CreateTextFile fileName,True,True
Set txt=fs.OpenTextFile(fileName,2,True)
txt.Write 0
txt.close()
Set txt=Nothing
End If

'缓存为空,则读取文本数据
Set txt=fs.OpenTextFile(fileName,1,1)
If txt.AtEndOfStream Then
Application("Counter")=0 '如果文件中没有数据,则初始化Application("Counter")的值(为了容错)
Else
Application("Counter")=txt.ReadLine
End If
txt.close()
Set txt=Nothing

Application.Lock '利用Application特性防止并发写入
Randomize
Application("Counter") = Application("Counter") + Int(((9-5+1) * Rnd) + 5)
SaveNum(Application("Counter")) '写入新数据
Application.UnLock

End Function

'显示计数函数
Function ReadNum()
Init()
ReadNum=PrintNumber(Application("Counter")) '调用显示方式函数
End Function


'保存数据函数
Function SaveNum(Content)
Set txt=fs.OpenTextFile(fileName,2,True)
txt.Write Content
txt.Close
Set txt = Nothing
End Function

'显示方式函数
Function PrintNumber(x)
Dim i,MyStr,sCounter
sCounter = Clng(x)
For i = 1 To counterLenth - Len(sCounter)
If displayMode=1 Then
MyStr = MyStr & "0"
Else
MyStr = MyStr & "<IMG SRC=\0.gif>" '如有图片,可调用此语句
End If
Next
For i = 1 To Len(sCounter)
If displayMode=1 Then
MyStr = MyStr & Mid(sCounter, i, 1)
Else
MyStr = MyStr & "<IMG SRC=改成你自己的图片存放的相对目录\" & Mid(sCounter, i, 1) & ".gif>" '如有图片,可调用此语句
End If
Next
PrintNumber = MyStr
End Function
%>
...全文
2556 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chg148 2020-11-18
  • 打赏
  • 举报
回复
嗯,asp的。 期待高手们 方便的时候能帮忙一下!谢谢
泡泡鱼_ 2020-11-18
  • 打赏
  • 举报
回复
引用 2 楼 chg148 的回复:
嗯,asp的。 期待高手们 方便的时候能帮忙一下!谢谢
度娘:asp Global.asa Application_OnStart
泡泡鱼_ 2020-11-17
  • 打赏
  • 举报
回复
asp网站? 你这个不是“数据库是txt后缀”,只是你用了一个txt做状态存储而已 如果 是asp的话,我记得Application是全局性的呀。好像是有个Global.xxx什么后缀的文档中就有你说的那些Application_OnStart或者Application_OnEnd?之类的事件。你按这个思路去网上搜搜吧

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧