ASP无惧缓存类 V1.0

4/22/2009来源:ASP技巧人气:5981

' 用途:用于常用数据的缓存,以减少执行,加快速度,但是由于使用application来存贮数据,有可能对服务器造成负担
' 类名 Cache_Class
' 方法 NoCache(函数名,关键字) 测试该缓存是否有效
' 属性 Value 如果缓存无效,使用该属性设置缓存,如果缓存,则使用该属性读取缓存
' 例子
' Dim Cache
' Set Cache = New Cache_Class
' if Cache.NoCache("getname(a)","username") Then Cache.Value=getname(a)
' Response.Write Cache.Value
' 注意:每次使用前都需要用NoCache方法来测试,否则无法保证的取得的值是否为当前设置的函数名
' 技巧:函数名用于识别,当有数据改变时,只需直接调用函数SetCac

当你的技术已经到达一定的时候,这代码是非常有用的!因为他是进军优化行列的必须函数!建议各位收藏使用!

 程序代码
<%Class Cache_Class
Dim Cache_Name, Cache_Key, Version, Cache_Value

Function NoCache(FunName, Key)
Dim NoIn
Cache_Name = FunName
Cache_Key = Key
Cache_Value = Application("Cache_" & Cache_Name)
NoIn = True
If IsArray(Cache_Value) Then If Application("CacheKey_" & Cache_Key) = Cache_Value(0) Then NoIn = False
NoCache = NoIn
End Function

PRoperty Get Value()
Value = Cache_Value(1)
End Property

Property Let Value(Val)
ReDim Cache_Value(1)
Cache_Value(0) = Application("CacheKey_" & Cache_Key)
Cache_Value(1) = Val
Application("Cache_" & Cache_Name) = Cache_Value
End Property

End Class

Function SetCacheKey(Key)
Application("CacheKey_" & Key) = Timer
End Function

Dim Cache
Set Cache = New Cache_Class
%>