专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » asp缓存类:asp xml缓存类 »正文

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

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: