asp缓存类:asp xml缓存类来源: 发布时间:星期四, 2009年2月12日 浏览:219次 评论:0
<% \' 介绍说明: \' Set CC = New RyM_ClsCache \'创建对象 \' CC.CreateXmlObj \"Temp.xml\",\"/ROYAH_CACHE\" \' CC.Name = \"CA\" \'设置缓存Cache名 \' If CC.IsXmlObj Then \'如果存在缓存Cache则 \' Temp = CC.Value \'直接xml中读取值 \' Else 否则 \' Temp = \"要缓存Cache内容只能是串\" \' CC.Value = Temp \'把要缓存Cache值写入xml \' End If \' Set CC = Nothing \'释放对象 \' 变量Temp就是经过缓存Cache后串值了 \'= 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.Char = \"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 \'如果指定缓存Cache文件不存在则自动新建 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.AttributeNode 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 DateDf(\"s\",CDate(AttrTime.Text),Now) > 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 %> 0
相关文章读者评论发表评论 |