快速业务通道

详细的关于ASP缓存类的教程

作者 佚名技术 来源 ASP编程 浏览 发布时间 2012-03-12

文件Users.ASP
< %
''Clone方法使得每个用户拥有自己的一个RecordSet集合
Set yourUsers = Application("rsUsers").Clone
Set UserName = yourUsers("UserName")
Set Password = yourUsers("Password")
Do Until yourUsers.EOF
% >
用户姓名:< %= UserName % > 用户密码:< %= Password % >
< %
yourUsers.MoveNext
Loop
% >
 
至于缓存的作用,我想我也不用再多说了,它的作用已经很明显,特别是对于信息量非常大或是全数据库页面的网站,他能很好地利用主机的内存资源,加速ASP的执行效率,减轻服务器的负担,而动网在这一方面做得是最突出的,像他现在的dvbbs7.1.0版,更是在缓存的利用上更上一层楼,前后台大多的操作都和缓存有关,而现在动网里用的也就是迷城浪子的缓存类:
<%
Class Cls_Cache
''==================使用说明====================
''本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。
''作用:缓存和缓存管理类
''公有变量:Reloadtime 过期时间(单位为分钟)缺省值为14400
''MaxCount 缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300
''CacheName 缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。
''属性:Name 定义缓存对象名称,只写属性。
''属性:value 读取和写入缓存数据。
''函数:ObjIsEmpty()判断当前缓存是否过期。
''方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。
''========================
Public Reloadtime,MaxCount,CacheName
Private LocalCacheName,CacheData,DelCount

Private Sub Class_Initialize()
Reloadtime=14400 ''过期时间(单位为分钟)
CacheName="Dvbbs" ''缓存组的总名称
End Sub

Private Sub SetCache(SetName,NewValue)
Application.Lock
Application(SetName) = NewValue
Application.unLock
End Sub

Public Property Let Name(ByVal vNewValue) ''缓存对象名称
LocalCacheName=LCase(vNewValue)
End Property

Public Property Let Value(ByVal vNewValue) ''读取和写入缓存数据
If LocalCacheName<>"" Then
CacheData=Application(CacheName&"_"&LocalCacheName)
If IsArray(CacheData) Then
CacheData(0)=vNewValue
CacheData(1)=Now()
Else
ReDim CacheData(2)
CacheData(0)=vNewValue
CacheData(1)=Now()
End If
SetCache CacheName&"_"&LocalCacheName,CacheData
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " please change the CacheName."
End If
End Property

Public Property Get Value()
If LocalCacheName<>"" Then
CacheData=Application(CacheName&"_"&LocalCacheName)
If IsArray(CacheData) Then
Value=CacheData(0)
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " The CacheData Is Empty."
End If
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " please change the CacheName."
End If
End Property

Public Function ObjIsEmpty() ''判断当前缓存是否过期
ObjIsEmpty=True
CacheData=Application(CacheName&"_"&LocalCacheName)
If Not IsArray(CacheData) Then Exit Function
If Not IsDate(CacheData(1)) Then Exit Function
If DateDiff("s",CDate(CacheData(1)),Now()) < 60*Reloadtime Then ObjIsEmpty=False
End Function

Private Sub makeEmpty(SetName) ''释放内存
Application.Lock
Application(SetName) = Empty
Application.unLock
End Sub

Public Sub DelCahe(MyCaheName) ''删除缓存
makeEmpty(CacheName&"_"&MyCaheName)
End Sub
End Class

''Set WydCache=New Cls_Cache
''WydCache.Reloadtime=0.5 ''定义过期时间 (以分钟为单会)
''WydCache.CacheName="pages" ''定义缓存名
''IF WydCache.ObjIsEmpty() Then ''''判断是否可用(包括过期,与是否为空值)
''Response.write WydCache.Value
''Else
''..................
''BoardJumpList=xxx
''WydCache.Value=BoardJumpList ''写入内容
''Response.write BoardJumpList
''End if
''
''mycache.DelCahe("缓存名") 删除缓存
%>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号