ASP缓存类收集
- 木鸟写的
- '**********************************************
- ' vbs Cache类
- '
- ' 属性valid,是否可用,取值前判断
- ' 属性name,cache名,新建对象后赋值
- ' 方法add(值,到期时间),设置cache内容
- ' 属性value,返回cache内容
- ' 属性blempty,是否未设置值
- ' 方法makeEmpty,释放内存,测试用
- ' 方法equal(变量1),判断cache值是否和变量1相同
- ' 方法expires(time),修改过期时间为time
- ' 木鸟 2002.12.24
- ' http://www.aspsky.net/
- '**********************************************
- class Cache
- private obj 'cache内容
- private expireTime '过期时间
- private expireTimeName '过期时间application名
- private cacheName 'cache内容application名
- private path 'uri
- private sub class_initialize()
- path=request.servervariables("url")
- path=left(path,instrRev(path,"/"))
- end sub
- private sub class_terminate()
- end sub
- public property get blEmpty
- '是否为空
- if isempty(obj) then
- blEmpty=true
- else
- blEmpty=false
- end if
- end property
- public property get valid
- '是否可用(过期)
- if isempty(obj) or not isDate(expireTime) then
- valid=false
- elseif CDate(expireTime)<now then
- valid=false
- else
- valid=true
- end if
- end property
- public property let name(str)
- '设置cache名
- cacheName=str & path
- obj=application(cacheName)
- expireTimeName=str & "expires" & path
- expireTime=application(expireTimeName)
- end property
- public property let expires(tm)
- '重设置过期时间
- expireTime=tm
- application.lock
- application(expireTimeName)=expireTime
- application.unlock
- end property
- public sub add(var,expire)
- '赋值
- if isempty(var) or not isDate(expire) then
- exit sub
- end if
- obj=var
- expireTime=expire
- application.lock
- application(cacheName)=obj
- application(expireTimeName)=expireTime
- application.unlock
- end sub
- public property get value
- '取值
- if isempty(obj) or not isDate(expireTime) then
- value=null
- elseif CDate(expireTime)<now then
- value=null
- else
- value=obj
- end if
- end property
- public sub makeEmpty()
- '释放application
- application.lock
- application(cacheName)=empty
- application(expireTimeName)=empty
- application.unlock
- obj=empty
- expireTime=empty
- end sub
- public function equal(var2)
- '比较
- if typename(obj)<>typename(var2) then
- equal=false
- elseif typename(obj)="Object" then
- if obj is var2 then
- equal=true
- else
- equal=false
- end if
- elseif typename(obj)="Variant()" then
- if join(obj,"^")=join(var2,"^") then
- equal=true
- else
- equal=false
- end if
- else
- if obj=var2 then
- equal=true
- else
- equal=false
- end if
- end if
- end function
- end class
- 木鸟 类例子 vbs Cache类
- '
- ' 属性valid,是否可用,取值前判断
- ' 属性name,cache名,新建对象后赋值
- ' 方法add(值,到期时间),设置cache内容
- ' 属性value,返回cache内容
- ' 属性blempty,是否未设置值
- ' 方法makeEmpty,释放内存,
- ' 方法DelCahe ,删除内存
- ' 方法equal(变量1),判断cache值是否和变量1相同
- ' 方法expires(time),修改过期时间为time
- ' 用法
- set myCache=New Cache
- myCache.name="BoardJumpList" '定义缓存名
- if myCache.valid then '判断是否可用(包括过期,与是否为空值)
- response.write myCache.value '输出
- else
- ................
- BoardJumpList=xxx
- myCache.add BoardJumpList,dateadd("n",60,now) '写入缓存 xxx.add 内容,过期时间
- response.write BoardJumpList '输出
- end if
- myCache.makeEmpty() 释放内存
- mycache.DelCahe() 删除缓存
- ==========================================================================
- 迷城浪子写的 Class Cls_Cache
- Rem ==================使用说明====================
- Rem = 本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。
- Rem = 作用:缓存和缓存管理类
- Rem = 公有变量:Reloadtime 过期时间(单位为分钟)缺省值为14400
- Rem = MaxCount 缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300
- Rem = CacheName 缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。
- Rem = 属性:Name 定义缓存对象名称,只写属性。
- Rem = 属性:value 读取和写入缓存数据。
- Rem = 函数:ObjIsEmpty()判断当前缓存是否过期。
- Rem = 方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。
- Rem ========================
- 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
- Private Sub makeEmpty(SetName)
- Application.Lock
- Application(SetName) = Empty
- 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 If
- End Function
- 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("缓存名") 删除缓存
- ==========================================================================
- slightboy 写的
- '========================
- 'clsCache.asp
- '========================
- '== begin : 2004-6-26 21:51:47
- '== copyright : slightboy (C)1998-2004
- '== email : slightboy@msn.com
- '========================
- '========================
- ' Dim Application(2)
- ' Application(0) Counter 计数器
- ' Application(1) dateTime 放置时间
- ' Application(2) Content 缓存内容
- Public PREFIX
- Public PREFIX_LENGTH
- Private Sub Class_Initialize()
- PREFIX = "Cached:"
- PREFIX_LENGTH = 7
- End Sub
- Private Sub Class_Terminate
- End Sub
- ' 设置变量
- Public Property Let Cache(ByRef Key, ByRef Content)
- Dim Item(2)
- Item(0) = 0
- Item(1) = Now()
- IF (IsObject(Content)) Then
- Set Item(2) = Content
- Else
- Item(2) = Content
- End IF
- Application.Unlock
- Application(PREFIX & Key) = Item
- Application.Lock
- End Property
- ' 取出变量 计数器++
- Public Property Get Cache(ByRef Key)
- Dim Item
- Item = Application(PREFIX & Key)
- IF (IsArray(Item)) Then
- IF (IsObject(Item)) Then
- Set Cache = Item(2)
- Else
- Cache = Item(2)
- End IF
- Application(PREFIX & Key)(0) = Application(PREFIX & Key)(0) + 1
- Else
- Cache = Empty
- End IF
- End Property
- ' 检查缓存对象是否存在
- Public Property Get Exists(ByRef Key)
- Dim Item
- Item = Application(PREFIX & Key)
- IF (IsArray(Item)) Then
- Exists = True
- Else
- Exists = False
- End IF
- End Property
- ' 得到计数器数值
- Public Property Get Counter(ByRef Key)
- Dim Item
- Item = Application(PREFIX & Key)
- IF (IsArray(Item)) Then
- Counter = Item(0)
- End IF
- End Property
- ' 设置计数器时间
- Public Property Let dateTime(ByRef Key, ByRef SetdateTime)
- Dim Item
- Item = Application(PREFIX & Key)
- IF (IsArray(Item)) Then
- Item(1) = SetdateTime
- End IF
- End Property
- ' 得到计数器时间
- Public Property Get dateTime(ByRef Key)
- Dim Item
- Item = Application(PREFIX & Key)
- IF (IsArray(Item)) Then
- dateTime = Item(1)
- End IF
- End Property
- ' 重置计数器
- Public Sub ResetCounter()
- Dim Key
- Dim Item
- Application.Unlock
- For Each Key in Application.Contents
- IF (Left(Key, PREFIX_LENGTH) = PREFIX) Then
- Item = Application(Key)
- Item(0) = 0
- Application(Key) = Item
- End IF
- Next
- Application.Lock
- End Sub
- ' 删除某以缓存
- Public Sub Clear(ByRef Key)
- Application.Contents.Remove(PREFIX & Key)
- End Sub
- ' 清空没有使用的缓存
- Public Sub ClearUnused()
- Dim Key, Keys, KeyLength, KeyIndex
- For Each Key in Application.Contents
- IF (Left(Key, PREFIX_LENGTH) = PREFIX) Then
- IF (Application(Key)(0) = 0) Then
- Keys = Keys & VBNewLine & Key
- End IF
- End IF
- Next
- Keys = Split(Keys, VBNewLine)
- KeyLength = UBound(Keys)
- Application.Unlock
- For KeyIndex = 1 To KeyLength
- Application.Contents.Remove(Keys(KeyIndex))
- Next
- Application.Lock
- End Sub
- ' 清空所有缓存
- Public Sub ClearAll()
- Dim Key, Keys, KeyLength, KeyIndex
- For Each Key in Application.Contents
- IF (Left(Key, PREFIX_LENGTH) = PREFIX) Then
- Keys = Keys & VBNewLine & Key
- End IF
- Next
- Keys = Split(Keys, VBNewLine)
- KeyLength = UBound(Keys)
- Application.Unlock
- For KeyIndex = 1 To KeyLength
- Application.Contents.Remove(Keys(KeyIndex))
- Next
- Application.Lock
- End Sub
- End Class
- slightboyn 类例子
- Set Wyd=New JayCache
- Wyd.dateTime("Page")=时 间
- If Wyd.Exists("Page") Then
- Response.write Wyd.Cache("Page") '输出
- Else
- Wyd.Cache("Page")=xxx 写入
- Responxe.write xxx
- End IF
- Wyd.Clear("page")'删除缓存
- ==========================================================================
- 无惧缓存类 V1.0
- Cache_class.asp
- <%
- ' ============================================
- ' 转发时请保留此声明信息,这段声明不并会影响你的速度!
- ' 类名:无惧缓存类 V1.0
- ' 作者:梁无惧
- ' 网站:http://www.25CN.com
- ' 电子邮件:yjlrb@25CN.com
- ' 版权声明:版权所有,源代码公开,各种用途均可免费使用,但是修改后必须把修改后的文件
- ' 发送一份给作者.
- ' ============================================
- ' 用途:用于常用数据的缓存,以减少执行,加快速度,但是由于使用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方法来测试,否则无法保证的取得的值是否为当前设置的函数名
- ' 技巧:函数名用于识别,当有数据改变时,只需直接调用函数SetCacheKey(关键字)即可以刷新缓存,这样可保存缓存随数据的改变而重新缓存
- ' 默认建立Cache实例,可以在程序中直接调用而不需要事先创建
- ' ============================================
- 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
- %>
- ==========================================================================
- ASP的XML缓存类,代替了Application
- <%
- '=========================================
- ' ClassName: RyM_ClsCache
- ' Version: 1.0
- ' Date: 2006-8-2
- ' Author: 网海の求生
- '=========================================
- ' 调用说明:
- ' Set CC = New RyM_ClsCache '创建对象
- ' CC.CreateXmlObj "Temp.xml","/ROYAH_CACHE"
- ' CC.Name = "CA" '设置缓存名
- ' If CC.IsXmlObj() Then '如果存在缓存则
- ' Temp = CC.Value '直接xml中读取值
- ' Else 否则
- ' Temp = "要缓存的内容,只能是字符串"
- ' CC.Value = Temp '把要缓存的值写入xml
- ' End If
- ' Set CC = Nothing '释放对象
- ' 变量Temp就是经过缓存后的字符串值了
- '=========================================
- Class RyM_ClsCache
- Public Reloadtime
- Private XmlDom, XmlDoc, XmlNode, XmlAttr, AttrTime
- Private CacheName, LocalCacheName, XmlPath
- Private Sub Class_Initialize()
- Reloadtime = 14400
- End Sub
- Private Sub Class_Terminate()
- Close()
- End Sub
- '新建文本文件
- Private Function SaveToFile(ByVal strBody,ByVal SavePath)
- Set ObjStream = Server.CreateObject("ADODB.Stream")
- ObjStream.Open
- ObjStream.Type = 2
- ObjStream.Charset = "GB2312"
- ObjStream.WriteText strBody
- ObjStream.SaveToFile SavePath,2
- ObjStream.Close
- Set ObjStream = Nothing
- End Function
- '创建Xml对象
- Public Sub CreateXmlObj(ByVal XmlName, ByVal ChName)
- Set XmlDom = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
- XmlPath = Server.MapPath(XmlName)
- CacheName = ChName
- If Not XmlDom.Load(XmlPath) Then '如果指定的缓存文件不存在则自动新建
- SaveToFile "<?xml version=""1.0"" encoding=""GB2312""?><ROYAH_CACHE></ROYAH_CACHE>",XmlPath
- XmlDom.Load(XmlPath)
- End If
- End Sub
- '设置返回数据节点名
- Public Property Let Name(ByVal vNewValue)
- LocalCacheName = vNewValue
- If LocalCacheName <> "" Then
- Set XmlDoc = XmlDom.documentElement.selectSingleNode(CacheName & "/" & LocalCacheName)
- End If
- End Property
- '设置当前节点值
- Public Property Let Value(ByVal vNewValue)
- If (XmlDoc Is Nothing) Then
- Set XmlDoc = XmlDom.documentElement.selectSingleNode(CacheName)
- Set XmlNode = XmlDom.createElement(LocalCacheName)
- Set XmlAttr = XmlDom.createAttribute("Time")
- XmlNode.Text = vNewValue
- XmlAttr.Text = Now()
- XmlDoc.AppendChild(XmlNode)
- XmlNode.setAttributeNode XmlAttr
- XmlDom.Save(XmlPath)
- Else
- XmlDoc.Text = vNewValue
- Set AttrTime = XmlDoc.selectSingleNode("./@Time")
- AttrTime.Text = Now()
- XmlDom.Save(XmlPath)
- End If
- End Property
- '返回当前节点值
- Public Property Get Value()
- If Not (XmlDoc Is Nothing) Then
- Value = XmlDoc.Text
- End If
- End Property
- '移除当前节点
- Public Sub Remove()
- If Not (XmlDoc Is Nothing) Then
- XmlDoc.ParentNode.RemoveChild(XmlDoc)
- XmlDom.Save(XmlPath)
- End If
- End Sub
- '检测当前节点是否存在
- Public Function IsXmlObj()
- IsXmlObj = False
- If Not (XmlDoc Is Nothing) Then
- IsXmlObj = True
- Set AttrTime = XmlDoc.selectSingleNode("./@Time")
- If DateDiff("s",CDate(AttrTime.Text),Now()) > (60*Reloadtime) Then IsXmlObj = False
- End If
- End Function
- '释放全部对象
- Public Sub Close()
- If IsObject(XmlDom) Then Set XmlDom = Nothing
- If IsObject(XmlDoc) Then Set XmlDoc = Nothing
- If IsObject(XmlNode) Then Set XmlNode = Nothing
- If IsObject(XmlAttr) Then Set XmlAttr = Nothing
- If IsObject(AttrTime) Then Set XmlAttr = Nothing
- End Sub
- End Class
- %>
- ==========================================================================
- '/******************************
- '类名:XmlCache
- '名称:xml缓存类
- '日期:2007-12-15
- '作者:西楼冷月
- '网址:www.xilou.net | www.chinaCMS.org
- '描述:缓存名称不区分大小写,也可以是中文,当是字母时会以小写状态存储
- '版权:
- '******************************
- '最后修改:2007-12-15
- '修改次数:0
- '修改说明:
- '目前版本:v1.0
- '***************XmlCache属性***************
- 'Title: xml文档标题
- 'Creator: xml文档创建人
- 'DateCreated: xml文档创建时间
- 'Description: xml文档说明
- 'Encoding: xml文档编码
- 'Item: 设置或返回某个缓存的值,可读写
- 'ItemInfo: 返回数组,某个缓存的所有属性:名称,创建时间,过期时间截,值
- ' 如果不存在则返回一个空值的数组
- 'Keys: 返回所有的缓存名称,组成一个数组,只读
- 'Items: 返回所有缓存的数组,只读
- 'Count: 缓存个数
- 'Xml: 返回整份xml文档
- 'IsAutoUpdate: 当在内存中修改xml时是否自动更新到该xml文件,默认是否False
- '***************XmlCache方法***************
- '---xml缓存文档的操作
- 'Load(xmlFile): 加载xml缓存文档
- 'Create(xmlFile): 创建xml缓存文档
- 'Save(): 保存一份xml缓存文档
- 'SaveAs(xmlFile): 将xml缓存文档另存为
- 'DeleteFile(): 删除xml缓存文档
- '---缓存添加:
- 'Add(key,value): 添加一个缓存,失败返回false(比如:已经存在该key),成功返回true
- 'AddFull(key,value,s):添加一个缓存,包括名称,值,过期时间截
- '---缓存更新:
- 'Update(key,value): 更新一个缓存值,如果缓存存在并更新成功返回True,否则返回False
- 'UpdateExpires(key,s):更新一个缓存的过期时间截,如果缓存存在并更新成功返回True,否则返回False
- '---缓存删除:
- 'Remove(key): 删除一个缓存,如果该缓存名称存在而且成功删除则返回True否则返回False
- 'RemoveAll(): 删除所有缓存,返回True或False
- 'DeleteAll(): 删除所有过期的缓存,返回True或False(表示没有过期的缓存)
- '---缓存读取:
- '可以使用Item,ItemInfo,Keys,Items属性操作
- '---缓存检查:
- 'Exists(key): 检查一个缓存是否存在
- 'CheckExpires(key): 检查一个缓存是否已经过期,是返回True,否返回False
- '******************************/
- 程序代码
- <%
- '/******************************
- '类名:XmlCache
- '名称:xml缓存类
- '日期:2007-12-15
- '作者:西楼冷月
- '网址:www.xilou.net | www.chinaCMS.org
- '描述:缓存名称不区分大小写,也可以是中文,当是字母时会以小写状态存储
- '版权:
- '******************************
- '最后修改:2007-12-15
- '修改次数:0
- '修改说明:
- '目前版本:v1.0
- '***************XmlCache属性***************
- 'Title: xml文档标题
- 'Creator: xml文档创建人
- 'DateCreated: xml文档创建时间
- 'Description: xml文档说明
- 'Encoding: xml文档编码
- 'Item: 设置或返回某个缓存的值,可读写
- 'ItemInfo: 返回数组,某个缓存的所有属性:名称,创建时间,过期时间截,值
- ' 如果不存在则返回一个空值的数组
- 'Keys: 返回所有的缓存名称,组成一个数组,只读
- 'Items: 返回所有缓存的数组,只读
- 'Count: 缓存个数
- 'Xml: 返回整份xml文档
- 'IsAutoUpdate: 当在内存中修改xml时是否自动更新到该xml文件,默认是否False
- '***************XmlCache方法***************
- '---xml缓存文档的操作
- 'Load(xmlFile): 加载xml缓存文档
- 'Create(xmlFile): 创建xml缓存文档
- 'Save(): 保存一份xml缓存文档
- 'SaveAs(xmlFile): 将xml缓存文档另存为
- 'DeleteFile(): 删除xml缓存文档
- '---缓存添加:
- 'Add(key,value): 添加一个缓存,失败返回false(比如:已经存在该key),成功返回true
- 'AddFull(key,value,s):添加一个缓存,包括名称,值,过期时间截
- '---缓存更新:
- 'Update(key,value): 更新一个缓存值,如果缓存存在并更新成功返回True,否则返回False
- 'UpdateExpires(key,s):更新一个缓存的过期时间截,如果缓存存在并更新成功返回True,否则返回False
- '---缓存删除:
- 'Remove(key): 删除一个缓存,如果该缓存名称存在而且成功删除则返回True否则返回False
- 'RemoveAll(): 删除所有缓存,返回True或False
- 'DeleteAll(): 删除所有过期的缓存,返回True或False(表示没有过期的缓存)
- '---缓存读取:
- '可以使用Item,ItemInfo,Keys,Items属性操作
- '---缓存检查:
- 'Exists(key): 检查一个缓存是否存在
- 'CheckExpires(key): 检查一个缓存是否已经过期,是返回True,否返回False
- '******************************/
- Class XmlCache
- Private xmlDoc'//内部xml对象
- Private isLoaded'//是否已经加载xml文档
- Private xFile'//加载进来的xml文件(包括路径)
- Private xTitle
- Private xCreator
- Private xDateCreated
- Private xLastUpdate
- Private xDescription
- Private xEncoding
- Private itemTemp'//保存item节点的xml摸板
- Public IsAutoUpdate'//当在内存中修改xml时是否自动更新到该xml文件,默认是否False
- Private Sub Class_Initialize()
- Set xmlDoc=getXmlObj()
- xTitle=""
- xCreator=""
- xDateCreated=Now()
- xLastUpdate=Now()
- xDescription=""
- xEncoding="GB2312"
- isLoaded=False
- IsAutoUpdate=False
- 'itemTemp=vbcrlf&vbcrlf
- itemTemp=itemTemp&" <Item>"&vbcrlf
- itemTemp=itemTemp&" <Key>{key}</Key>"&vbcrlf
- itemTemp=itemTemp&" <CreatedTime>{createdtime}</CreatedTime>"&vbcrlf
- itemTemp=itemTemp&" <Expires>{expires}</Expires>"&vbcrlf
- itemTemp=itemTemp&" <Value>"&vbcrlf
- itemTemp=itemTemp&" <![CDATA[{value}]]>"&vbcrlf
- itemTemp=itemTemp&" </Value>"&vbcrlf
- itemTemp=itemTemp&" </Item>"&vbcrlf
- End Sub
- Private Sub Class_Terminate()
- Set xmlDoc=Nothing
- End Sub
- '返回整个xml文档内容,只读
- Public Property Get Xml
- Xml=xmlDoc.Xml
- End Property
- '//Title节点
- Public Property Get Title
- On Error Resume Next
- If isLoaded Then
- xTitle=xmlDoc.selectSingleNode("/XmlCache/Title").Text
- End If
- If Err Then showErr "节点/XmlCache/Title不存在"
- Title=xTitle
- End Property
- Public Property Let Title(v)
- xTitle=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/Title").Text=xTitle
- End If
- If Err Then showErr "节点/XmlCache/Title不存在"
- End Property
- '//Creator节点
- Public Property Get Creator
- On Error Resume Next
- If isLoaded Then
- xCreator=xmlDoc.selectSingleNode("/XmlCache/Creator").Text
- End If
- If Err Then showErr "节点/XmlCache/Creator不存在"
- Creator=xCreator
- End Property
- Public Property Let Creator(v)
- xCreator=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/Creator").Text=xCreator
- End If
- If Err Then showErr "节点/XmlCache/Creator不存在"
- End Property
- '//DateCreated节点
- Public Property Get DateCreated
- On Error Resume Next
- If isLoaded Then
- xDateCreated=xmlDoc.selectSingleNode("/XmlCache/DateCreated").Text
- End If
- If Err Then showErr "节点/XmlCache/DateCreated不存在"
- DateCreated=xDateCreated
- End Property
- Public Property Let DateCreated(v)
- xDateCreatede=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/DateCreated").Text=xDateCreated
- End If
- If Err Then showErr "节点/XmlCache/DateCreated不存在"
- End Property
- '//LastUpdate节点
- Public Property Get LastUpdate
- On Error Resume Next
- If isLoaded Then
- xLastUpdate=xmlDoc.selectSingleNode("/XmlCache/LastUpdate").Text
- End If
- If Err Then showErr "节点/XmlCache/LastUpdate不存在"
- LastUpdate=xLastUpdate
- End Property
- Public Property Let LastUpdate(v)
- xLastUpdate=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/LastUpdate").Text=xLastUpdate
- End If
- If Err Then showErr "节点/XmlCache/LastUpdate不存在"
- End Property
- '//Description节点
- Public Property Get Description
- On Error Resume Next
- If isLoaded Then
- xDescription=xmlDoc.selectSingleNode("/XmlCache/Description").Text
- End If
- If Err Then showErr "节点/XmlCache/Description不存在"
- Description=xDescription
- End Property
- Public Property Let Description(v)
- xDescription=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/Description").Text=xDescription
- End If
- If Err Then showErr "节点/XmlCache/Description不存在"
- End Property
- '//Encoding
- Public Property Get Encoding
- On Error Resume Next
- If isLoaded Then
- xEncoding=xmlDoc.selectSingleNode("/XmlCache/Encoding").Text
- End If
- If Err Then showErr "节点/XmlCache/Encoding不存在"
- Encoding=xEncoding
- End Property
- Public Property Let Encoding(v)
- xEncoding=v
- On Error Resume Next
- If isLoaded Then
- xmlDoc.selectSingleNode("/XmlCache/Encoding").Text=xEncoding
- End If
- If Err Then showErr "节点/XmlCache/Encoding不存在"
- End Property
- '//Item节点,设置或返回该缓存的值,可读写
- '//如果该值不存在则返回null值
- Public Default Property Get Item(key)
- Dim itemObj,k
- key=LCase(key)
- Set itemObj=xmlDoc.selectSingleNode("/XmlCache/Items/Item")
- For Each k In itemObj
- If k.childNodes.item(0).text=key Then
- Item=k.childNodes.item(3).text'缓存值
- Set itemObj=Nothing
- Exit Property
- End If
- Next
- Item=Null
- Set itemObj=Nothing
- End Property
- Public Property Let Item(key,v)
- Dim itemObj,k
- key=LCase(key)
- Set itemObj=xmlDoc.selectSingleNode("/XmlCache/Items/Item")
- On Error Resume Next
- For Each k In itemObj
- If k.childNodes.item(0).text=key Then
- k.childNodes.item(3).text=v'缓存值
- If Err Then
- showErr"缓存值不是有效的字符串"
- Set itemObj=Nothing
- Exit Property
- End If
- Set itemObj=Nothing
- Call Save()
- Exit Property
- End If
- Next
- Item=Null
- Set itemObj=Nothing
- Call Save()
- End Property
- '//某个缓存的所有属性:名称,创建时间,过期时间截,值
- '//如果不存在则返回一个空值的数组
- Public Property Get ItemInfo(key)
- Dim itemObj,infoArr(3),i
- key=LCase(key)
- Set itemObj=xmlDoc.getElementsByTagName("Item")
- For i=0 To itemObj.length-1
- If itemObj.item(i).childNodes.item(0).text=key Then
- infoArr(0)=itemObj.item(i).childNodes.item(0).text'缓存名称
- infoArr(1)=itemObj.item(i).childNodes.item(1).text'创建时间
- infoArr(2)=itemObj.item(i).childNodes.item(2).text'过期时间截
- infoArr(3)=itemObj.item(i).childNodes.item(3).text'缓存值
- End If
- Next
- Set itemObj=Nothing
- ItemInfo=infoArr
- End Property
- '//返回所有的缓存名称,组成一个数组,只读
- Public Property Get Keys()
- Dim keyObj,keyArr,i
- Set keyObj=xmlDoc.getElementsByTagName("Key")
- keyArr=Array()
- Redim keyArr(keyObj.length-1)
- For i=0 To keyObj.length-1
- keyArr(i)=keyObj.item(i).text
- Next
- Keys=keyArr
- Erase keyArr
- Set keyObj=Nothing
- End Property
- '//返回所有缓存的数组,只读
- Public Property Get Items()
- Dim itemArr,itemInfoArr,itemObj,i
- Set itemObj=xmlDoc.getElementsByTagName("Item")
- itemArr=Array()
- ReDim itemArr(itemObj.length-1,3)
- For i=0 To itemObj.length-1
- itemArr(i,0)=itemObj.item(i).childNodes.item(0).text'缓存名称
- itemArr(i,1)=itemObj.item(i).childNodes.item(1).text'创建时间
- itemArr(i,2)=itemObj.item(i).childNodes.item(2).text'过期时间截
- itemArr(i,3)=itemObj.item(i).childNodes.item(3).text'缓存值
- Next
- Set itemObj=Nothing
- Items=itemArr
- Erase itemArr
- End Property
- '//缓存个数,只读
- Public Property Get Count
- Count=xmlDoc.getElementsByTagName("Item").Length
- End Property
- '/------------------------------------------------------
- '//加载一份xml文档
- Public Sub Load(xmlFile)
- On Error Resume Next
- xmlDoc.Load(xmlFile)
- xFile=xmlFile
- If Err Then showErr "加载xml文档失败,Load(xmlFile),xmlFile:"&xmlFile
- isLoaded=True
- End Sub
- '//创建一份xml文档
- Public Sub Create(xmlFile)
- Dim xmlText,newXmlDoc
- If xEncoding="" Then xEncoding="GB2312"
- xDateCreated=Now()
- xLastUpdate=Now()
- xmlText="<?xml version=""1.0"" encoding="""&Encoding&"""?>"&vbcrlf
- xmlText=xmlText&"<XmlCache>"&vbcrlf
- xmlText=xmlText&" <Title>"&Title&"</Title>"&vbcrlf
- xmlText=xmlText&" <Creator>"&Creator&"</Creator>"&vbcrlf
- xmlText=xmlText&" <DateCreated>"&CreatedTime&"</DateCreated>"&vbcrlf
- xmlText=xmlText&" <LastUpdate>"&LastUpdate&"</LastUpdate>"&vbcrlf
- xmlText=xmlText&" <Description>"&Description&"</Description>"&vbcrlf
- xmlText=xmlText&" <Encoding>"&Encoding&"</Encoding>"&vbcrlf
- xmlText=xmlText&" <Items>"&vbcrlf
- xmlText=xmlText&" </Items>"&vbcrlf
- xmlText=xmlText&"</XmlCache>"&vbcrlf
- Set newXmlDoc=getXmlObj()
- On Error Resume Next
- newXmlDoc.LoadXml(xmlText)
- newXmlDoc.Save xmlFile
- If Err Then showErr "创建xml文档失败,Create(xmlFile),xmlFile:"&xmlFile
- Set newXmlDoc=Nothing
- End Sub
- '//保存一份xml文档
- Public Sub Save()
- On Error Resume Next
- xmlDoc.Save xFile
- If Err Then showErr "保存xml文档失败,Save(),xmlFile:"&xmlFile
- End Sub
- '//保存一份xml文档,文件名为xmlFile(全路径)
- Public Sub SaveAs(xmlFile)
- On Error Resume Next
- xmlDoc.Save xmlFile
- If Err Then showErr "保存xml文档失败,SaveAs(xmlFile),xmlFile:"&xmlFile
- End Sub
- '//删除xml文档
- Public Sub DeleteFile()
- End Sub
- '//检查缓存xml文档是否存在某个key,返回true或false
- '//检查一个缓存是否存在
- Public Function Exists(key)
- Dim itemObj,k
- key=LCase(key)
- Set itemObj=xmlDoc.selectNodes("/XmlCache/Items/Item/Key")
- For Each k In itemObj
- If k.text=key Then Exists=True:Exit Function
- Next
- Exits=Flase
- End Function
- '//添加一个缓存,失败返回false(比如:已经存在该key),成功返回true
- Public Sub Add(key,value)
- If key="" Then showErr"添加缓存失败,Add(key,value),key不能为空":Exit Sub
- If Exists(key) Then showErr"添加缓存失败,Add(key,value),该key已经存在":Exit Sub
- Dim itemsObj,itemObj,temp
- key=LCase(key)
- Set itemsObj=xmlDoc.documentElement.getElementsByTagName("Items")
- If itemsObj.length>0 Then
- temp=itemTemp
- temp=Replace(temp,"{key}",key):temp=Replace(temp,"{value}",value)
- temp=Replace(temp,"{createdtime}",Now()):temp=Replace(temp,"{expires}",60*20)
- Set itemObj=getXmlObj()
- itemObj.loadXml(temp)
- Set itemObj=itemObj.documentElement.cloneNode(true)'//复制节点
- itemsObj.item(0).appendChild itemObj
- Call Save()
- Set itemObj=Nothing
- Else
- showErr "添加缓存失败,Add(key,value),/XmlCache/Items节点不存在"
- End If
- Set ItemObj =Nothing
- Set itemsObj=Nothing
- End Sub
- '//添加一个缓存,包括名称,值,过期时间
- Public Sub AddFull(key,value,s)
- If key="" Then showErr"添加缓存失败,AddFull(key,value,s),key不能为空":Exit Sub
- If Not IsNumeric(s) Then showErr"添加缓存失败,AddFull(key,value,s),过期时间截s只能为数字":Exit Sub
- If Exists(key) Then showErr"添加缓存失败,AddFull(key,value,s),该key已经存在":Exit Sub
- Dim itemsObj,temp,xmlText,L
- key=LCase(key)
- Set itemsObj=xmlDoc.documentElement.getElementsByTagName("Items")
- If itemsObj.length>0 Then
- temp=itemTemp
- temp=Replace(temp,"{key}",key):temp=Replace(temp,"{value}",value)
- temp=Replace(temp,"{createdtime}",Now()):temp=Replace(temp,"{expires}",s)
- Set itemObj=getXmlObj()
- itemObj.loadXml(temp)
- Set itemObj=itemObj.documentElement.cloneNode(true)'//复制节点
- itemsObj.item(0).appendChild itemObj
- Call Save()
- Set itemObj=Nothing
- Else
- showErr "添加缓存失败,AddFull(key,value,s),/XmlCache/Items节点不存在"
- End If
- Set itemsObj=Nothing
- End Sub
- '//更新一个缓存值,如果缓存存在并更新成功返回True,否则返回False
- Public Function Update(key,value)
- Dim nodeItems,valueItems,i
- key=LCase(key)
- Set nodeItems=xmlDoc.getElementsByTagName("Key")
- Set valueItems =xmlDoc.getElementsByTagName("Value")
- On Error Resume Next
- For i = 0 To nodeItems.length - 1
- If nodeItems(i).text=key Then
- valueItems(i).text=value
- If Err Then
- showErr "更新缓存失败,Update(key,value),Value节点不存在"
- Update=False
- Exit Function
- End If
- Update=True
- Call xUpdate()
- Exit Function
- End If
- Next
- Set nodeItems=Nothing
- Set valueItems=Nothing
- Update=False
- End Function
- '//更新一个缓存的过期时间,如果缓存存在并更新成功返回True,否则返回False
- Public Function UpdateExpires(key,s)
- If Not IsNumeric(s) Then
- showErr"更新缓存错误,UpdateTimeOut(key,s),过期时间截s只能为数字"
- UpdateExpires=False
- Exit Function
- End If
- Dim nodeItems,expiresItems,i
- key=LCase(key)
- Set nodeItems=xmlDoc.getElementsByTagName("Key")
- Set expiresItems=xmlDoc.getElementsByTagName("Expires")
- On Error Resume Next
- For i = 0 To nodeItems.length - 1
- If nodeItems(i).text=key Then
- expiresItems(i).text=s
- If Err Then
- showErr "更新缓存失败,UpdateTimeOut(key,value),Expires节点不存在"
- UpdateExpires=False
- Exit Function
- End If
- UpdateExpires=True
- Call xUpdate()
- Exit Function
- End If
- Next
- Set nodeItems=Nothing
- Set expiresItems=Nothing
- UpdateExpires=False
- End Function
- '//检查一个缓存是否已经过期,是返回True,否返回False
- Public Function CheckExpires(key)
- Dim keyObj,createdObj,expiresObj,i,s1,s2,s3
- Set keyObj=xmlDoc.getElementsByTagName("Key")
- Set createdObj=xmlDoc.getElementsByTagName("CreatedTime")
- Set expiresObj=xmlDoc.getElementsByTagName("Expires")
- For i=0 To keyObj.length-1
- s1=keyObj.item(i).text
- s2=createdObj.item(i).text
- s3=expiresObj.item(i).text
- If s1=key And IsDate(s2) And IsNumeric(s3) Then
- If DateDiff("s",s1,Now())>CDbl(s2) Then
- CheckExpires=True
- Set keyObj=Nothing
- Set createdObj=Nothing
- Set expiresObj=Nothing
- Exit Function
- End If
- End If
- Next
- Set keyObj=Nothing
- Set createdObj=Nothing
- Set expiresObj=Nothing
- CheckExpires=False
- End Function
- '//Remove(key)删除一个缓存,如果该缓存名称存在而且成功删除则返回True否则返回False
- Public Function Remove(key)
- Dim keyObj,k
- key=LCase(key)
- Set keyObj=xmlDoc.getElementsByTagName("Key")
- For Each k In keyObj
- If k.text=key Then
- k.parentNode.parentNode.removeChild(k.parentNode)
- Remove=True
- Set keyObj=Nothing
- Exit Function
- End If
- Next
- Remove=False
- Set keyObj=Nothing
- Call xUpdate()'//重新保存到文件
- End Function
- '//删除所有缓存,返回True或False
- Public Function RemoveAll()
- Dim itemsObj
- Set itemsObj=xmlDoc.getElementsByTagName("Items")
- If itemsObj.length=1 Then
- itemsObj(0).text=""
- RemoveAll=True
- Else
- RemoveAll=False
- End If
- Set itemsObj=Nothing
- Call xUpdate()'//重新保存到文件
- End Function
- '//删除所有过期的缓存,返回True或False(表示没有过期的缓存)
- Public Function DeleteAll()
- Dim createdObj,expiresObj,isHave,i
- isHave=False'//是否有过期的缓存
- Set createdObj=xmlDoc.getElementsByTagName("CreatedTime")
- Set expiresObj=xmlDoc.getElementsByTagName("Expires")
- For i=0 To expiresObj.length-1
- If IsDate(createdObj.item(i).text) And IsNumeric(expiresObj.item(i).text) Then
- If DateDiff("s",createdObj.item(i).text,Now())>CDbl(expiresObj.item(i).text) Then
- createdObj.item(i).parentNode.parentNode.removeChild(createdObj.item(i).parentNode)
- isHave=True
- End If
- End If
- Next
- Set createdObj=Nothing
- Set expiresObj=Nothing
- DeleteAll=isHave
- Call xUpdate()'//重新保存到文件
- End Function
- '//显示错误
- Private Sub showErr(info)
- If Err Then info=info&","&Err.Description
- Response.Write info
- Err.Clear
- Response.End
- End Sub
- '//取得xml对象
- Private Function getXmlObj()
- On Error Resume Next
- Set getXmlObj=Server.CreateObject("Microsoft.XMLDOM")
- If Err Then showErr "创建xml对象失败"
- End Function
- '//更新一份xml文档
- Private Sub xUpdate()
- If IsAutoUpdate Then Call Save()
- End Sub
- '------------------------------------------------------/
- End Class
- %>
- ==============================================================================
- 动网先锋缓存类 提取 8.1 Dv_ClsMain.asp文件提取
- 经过测试适用。。。。。。
- 全文如下
- <%
- Dim dvbbs,txt
- Set dvbbs=New Cls_Cache
- Class Cls_Cache
- Public Reloadtime,MaxCount,CacheName
- Private LocalCacheName
- Private Sub Class_Initialize()
- Reloadtime=14400 ’默认缓存时间分钟
- CacheName="dvbbs" ‘缓存总名
- 'CacheName=LCase(CacheName)
- End Sub
- Public Property Let Name(ByVal vNewValue)
- LocalCacheName = LCase(vNewValue)
- End Property
- Public Property Let Value(ByVal vNewValue)
- If LocalCacheName<>"" Then
- Application.Lock
- Application(CacheName & "_" & LocalCacheName &"_-time")=Now()
- Application(CacheName & "_" & LocalCacheName) = vNewValue
- Application.unLock
- End If
- End Property
- Public Property Get Value()
- If LocalCacheName<>"" Then
- Value=Application(CacheName & "_" & LocalCacheName)
- End If
- End Property
- Public Function ObjIsEmpty()
- ObjIsEmpty=True
- If Not IsDate(Application(CacheName & "_" & LocalCacheName &"_-time")) Then Exit Function
- If DateDiff("s",CDate(Application(CacheName & "_" & LocalCacheName &"_-time")),Now()) < (60*Reloadtime) Then ObjIsEmpty=False
- End Function
- Public Sub DelCahe(MyCaheName)
- Application.Lock
- Application.Contents.Remove(CacheName&"_"&MyCaheName & "_-time")
- Application.Contents.Remove(CacheName&"_"&MyCaheName)
- Application.unLock
- End Sub
- End Class
- %>
- 以上保存为一个文件
- 如Cache.asp
- 然后需要缓存数据的页面包含Cache.asp文件不用我说了吧
- ‘’‘’‘’‘’‘调用开始
- ’CacheName="dvbbs" ‘设立了缓存总名的可以不要这行 如果修改了这个 所有DVBBS 要修改 如dvbbs.Name就要改成新的对应的总名
- dvbbs.Reloadtime=1 ’如果不按默认缓存时间才写 要不可以屏蔽
- dvbbs.Name="01" ‘缓存子名必须
- If vod.ObjIsEmpty() Then
- txt=""
- txt=“【这里是你要缓存的数据 可以是执行代码怎么写就看个人了】”
- if txt = "" then txt = "暂无数据"&vbCrLf
- txt=txt&"<!--上次更新"&now()&"下次更新将在"&dvbbs.Reloadtime&"分钟后-->"&vbCrLf
- dvbbs.value=txt
- Else
- txt=dvbbs.value
- End If
- Response.Write txt ‘这里是输出显示可以修改适用’
- ’‘’‘’‘’‘调用结束
- ==========================================================================
- 程序代码
- <%
- '***********************************************
- '函数名:getcache
- '作 用:将需要缓存的内容,置入缓存中,并读取出来,如果缓存中存在该内容,则直接从缓存读取!
- '作 者: 静¢脉(hayden)
- '时 间: 2007-12-21
- '参 数:funsname ---- 需要缓存的内容
- ' isreset ---- 是否更新[值:0(根据时间或判断缓存为空时自动更新)、1(主动更新)]
- ' isarr ---- 所缓存的内容是否为一个数据[0为字符串,1为数组]
- ' timeinfo ---- 缓存更新时间,单位为秒,当值为0时,则只在缓存为空时,才更新
- '返回值:缓存名为"funsname”的内容
- '***********************************************
- Function getcache(funsname,isreset,isarr,timeinfo)
- dim domain : domain = "myhhe.cn" '缓存域
- Dim temp_getconfig
- Dim re_getcache : re_getcache = False
- Dim temp_isarray_type : temp_isarray_type = False
- Dim Appfunsname : Appfunsname = Replace(Replace(Replace(funsname,"(",""),")",""),",",".")
- If isarr = 1 Then temp_isarray_type = True
- If isreset = 1 Then re_getcache = True
- If isreset = 2 Then
- execute("temp_getconfig="&funsname)
- getcache = temp_getconfig
- Exit Function
- End If
- If Application(domain&"_"&Appfunsname&"_time") = "" And timeinfo<>0 Then re_getcache = True
- If Not re_getcache Then
- If temp_isarray_type Then
- If Not IsArray(Application(domain&"_"&Appfunsname)) Then re_getcache = True
- Else
- If Application(domain&"_"&Appfunsname) = "" Then re_getcache = True
- End If
- End If
- If Not re_getcache And timeinfo<>0 Then
- If Int(DateDiff("s",Application(domain&"_"&Appfunsname&"_time"),now()))>timeinfo Then re_getcache = True
- End If
- If re_getcache Then
- execute("temp_getconfig="&funsname)
- Application.Lock
- Application(domain&"_"&Appfunsname) = temp_getconfig
- Application(domain&"_"&Appfunsname&"_time") = Now()
- Application.UnLock
- Else
- temp_getconfig=Application(domain&"_"&Appfunsname)
- End If
- getcache = temp_getconfig
- End Function
- %>
- 调用示例:
- 程序代码
- <%
- Function out_test1 '返回一个字符串的示例函数
- out_test1="这里是一个字符串"
- End Function
- Function out_test2 '返回一个数组的示例函数
- Dim temp_out_test2
- temp_out_test2="这里.是.一个.数组"
- out_test2=Split(temp_out_test2,".")
- End Function
- Dim i
- '字符串缓存(将函数out_test1从缓存读取并输出)
- Dim str2 : str2 = getcache("out_test1",0,0,180) '通过getcache函数读取缓存.刷新时间为180秒,(当out_test1缓存为空,会自动访问函数out_test1输出,并同时置入缓存~)
- response.write str2
- response.write "<BR><BR><BR>"
- '数组缓存(将函数out_test2从缓存读取并输出)
- Dim str1 : str1 = getcache("out_test2",0,1,180) '同上(字符串缓存说明)
- For i = 0 To UBound(str1)
- response.write str1(i) & "<BR>"
- Next
- %>
ASP缓存类收集的更多相关文章
- ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...
- HttpRuntime.Cache .Net自带的缓存类
.Net自带的缓存有两个,一个是Asp.Net的缓存 HttpContext.Cache,一个是.Net应用程序级别的缓存,HttpRuntime.Cache. MSDN上有解释说: HttpCont ...
- 比较全面的一个PHP缓存类解析
转自:http://www.blhere.com/1164.html 一.引论 PHP,一门最近几年兴起的web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,php相比传统的asp网站 ...
- 分享个 之前写好的 android 文件流缓存类,专门处理 ArrayList、bean。
转载麻烦声明出处:http://www.cnblogs.com/linguanh/ 目录: 1,前序 2,作用 3,特点 4,代码 1,前序 在开发过程中,client 和 server 数据交流一 ...
- (实用篇)PHP缓存类完整实例
本文完整描述了一个简洁实用的PHP缓存类,可用来检查缓存文件是否在设置更新时间之内.清除缓存文件.根据当前动态文件生成缓存文件名.连续创建目录.缓存文件输出静态等功能.对于采用PHP开发CMS系统来说 ...
- php简单缓存类
<?phpclass Cache { private $cache_path;//path for the cache private $cache_expire;//seconds ...
- php简单数据缓存类
公司手机触屏站 ,由于页面图片太多,所以需要做数据缓存,就随便写一个数据缓存类. 直接贴代码 <?php/**** fianl_m@foxmail.com* 缓存类* 把数据查询出,并序列化写入 ...
- iOS缓存类的设计
使用执行速度缓存的程序可以大大提高程序,设计一个简单的缓存类并不需要太复杂的逻辑. 只需要一个简单的3接口. 存款对象 以一个对象 删除对象 阅读对象 watermark/2/text/aHR0cDo ...
- 一个不错的PHP文件页面缓存类
在php中缓存分类数据库缓存,文件缓存和内存缓存,下面我来给各位同学详细介绍PHP文件缓存类实现代码,有需要了解的朋友可参考. 页面缓存类 <?php /* * 缓存类 cac ...
随机推荐
- CDH ecosystem components
1,Mahout ASF(Apache Software Foundation)开源项目,提供可扩展的`机器学习`--(ML,Machine Learning多领域交叉学科,涉及概率,统计,逼近,凸分 ...
- 细谈Linux和windows差异之图形化用户接口、命令行接口
相信来看本博文的朋友,肯定是已经玩过linux好段时间了,才能深刻理解我此番话语. 这是在Windows下的命令行接口 这是windows下的用户接口 就是它,explorer.ext,可以去尝试.把 ...
- delphi 完全控制Excel 文件
( 一 ) 使用动态创建的方法 uses ComObj; 首先创建 Excel 对象Var ExcelApp : Variant ; ExcelApp := CreateOleObject ( ...
- hdoj 1872 稳定排序
稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- [OC Foundation框架 - 4] NSString的导出
void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
首先新建一个基于Sigle view Application的项目,名为GestureTest;我的项目结构如下: 往viewController.xib文件里拖动一个imageView,并使覆盖整个 ...
- web开发工具类
1.日期工具类 import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { public sta ...
- nginx编译参数集合
http://www.ttlsa.com/nginx/nginx-configure-descriptions/ 标题是不是很欠揍,个人认为确实值得一看,如果你不了解nginx,或者你刚学nginx, ...
- MySQL索引使用方法和性能优化
在自己的一个项目中,数据比较多,搜索也很频繁,这里找到一个建立索引很不错的文章,推荐下. 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的 ...
- 【转】使用junit4进行单元测试(高级篇)
转自:http://blog.csdn.net/andycpp/article/details/1329218 通过前 2 篇文章,您一定对 JUnit 有了一个基本的了解,下面我们来探讨一下JUni ...