新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → ASP中Cache技术的应用 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6844 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: ASP中Cache技术的应用 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     愚者 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:愚者
      等级:计算机学士学位
      文章:259
      积分:2375
      门派:XML.ORG.CN
      注册:2004/10/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给愚者发送一个短消息 把愚者加入好友 查看愚者的个人资料 搜索愚者在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看愚者的博客楼主
    发贴心情 ASP中Cache技术的应用

    出处:CSDN
    作者:qihboy  

    ********************************************
    Code
      ASP:default.asp
        --------------------
      <%@Language=VBScript%>
      <%Option  Explicit%>
      <%Response.Buffer=True%>
      <!--#include file = "conn.asp"-->
      <!--#include file = "GetCache.asp"-->
      <HTML>
      <HEAD>
      <TITLE>ASP Cache演示</TITLE>
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
      </HEAD>
      <BODY>
      <h4>每隔10秒刷新Cache:</h4>
      <%
      response.Flush
      GetHTMLStream
      response.Write
      HTMLStream
      %>
      </body>
      </html>

        ASP:getcache.asp
        --------------------
      <%
      Const CACHE_DEFAULT_INTERVAL = 30 '每隔30秒刷新一次cache
      Dim HTMLStream
      Dim IsExpires
      IsExpires = CacheExpires
      Function CacheExpires
      Dim strLastUpdate
      Dim result strLastUpdate = Application("LastUpdate")
      If (strLastUpdate = "") Or (CACHE_DEFAULT_INTERVAL < DateDiff("s", strLastUpdate, Now)) Then
      result = true
      SetLastUpdateTime
      Else
      result = false
      End If
      CacheExpires = result
      End Function
        Sub SetLastUpdateTime
      Application.Lock
      Application("LastUpdate") = CStr(now())
      Application.UnLock
      End Sub
      Sub GetHTMLStream
      If IsExpires Then
      UpdateHTMLStream
      End If
      HTMLStream=Application("CACHE_HTMLStream")
      End Sub

      Sub UpdateHTMLStream
      dim d
      d = FetchHTMLStream
      Application.Lock
      Application("CACHE_HTMLStream") = d
      Application.UnLock
      End Sub

      Function FetchHTMLStream  
      Dim rs ,strSQL, strHTML
      Set rs = CreateObject("ADODB.Recordset")
      strSQL = "select categoryID , categoryname from categories"
      rs.Open strSQL, strConn,adOpenForwardOnly,adLockReadOnly
      strHTML = strHTML & "<select name=""slt_search"">"
      while (not rs.EOF)
      strHTML = strHTML & "<option>"
      strHTML = strHTML & rs.Fields("categoryname")
      strHTML = strHTML & "</option>" rs.MoveNext
      wend
      strHTML = strHTML & "</select>"
      rs.Close
      Set rs = Nothing
      FetchHTMLStream = strHTML
      End Function
      %>

        ASP:conn.asp
        --------------------
      <!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
      <%
      dim strConn
      strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind"
      %>


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    http://photo.cnitv.com/PicLib/Pictures/Pi_21377.gif
    人生的意义不在马到成功,而在于不断求索,奋力求成。每一件有意义的事都需要不得我们以坚强的信念去完成,这样,我们的生活才会更加充实,意志更加坚强。
    人与人之间虽然相隔很近,但是心却离得很远!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/9 20:19:00
     
     上水道的 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      注册:2004/1/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给上水道的发送一个短消息 把上水道的加入好友 查看上水道的的个人资料 搜索上水道的在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看上水道的的博客2
    发贴心情 
    这样的缓存不太好,对于减轻服务器负担没起多大作用
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/26 21:59:00
     
     上水道的 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      注册:2004/1/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给上水道的发送一个短消息 把上水道的加入好友 查看上水道的的个人资料 搜索上水道的在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看上水道的的博客3
    发贴心情 
    我贴两个CLASS文件吧,缓存递归出来的数据,这样的缓存才有意义

    写得比较复杂,两个类是互为调用的

    <%
    Class clsCache
     Private Conn,cheName,CacheType
     
     '-----------------------------------------------------------------------------------
     '初始化当前页的值
     Private Sub Class_Initialize
     End Sub
     '-----------------------------------------------------------------------------------

     '-----------------------------------------------------------------------------------
     '设置 Terminate 事件。
     Private Sub Class_Terminate
     End Sub
     '-----------------------------------------------------------------------------------

     '###################################################################################
     '# 属性设置
     '###################################################################################
     
     '-----------------------------------------------------------------------------------
     '属性,设置数据库连接对象
     Public Property Let Connection(Obj_Conn)
      Set Conn = Obj_Conn
     End Property
     '-----------------------------------------------------------------------------------

     '-----------------------------------------------------------------------------------
     '属性,设置Application对象
     Public Property Let Name(str_cheName)
      cheName = str_cheName
     End Property
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '属性,设置Application对象存储对象
     Public Property Let cheType(str_cheType)
      CacheType = str_cheType
     End Property
     '-----------------------------------------------------------------------------------

     '###################################################################################
     '# 函数
     '###################################################################################

     '-----------------------------------------------------------------------------------
     '得到Application对象存储内容
     Public Function Value()
      If Application(cheName) = "" Then
       Select Case CacheType
        Case "Class"
        Application(cheName) = getClass()
       End Select
      End If
      Value = Application(cheName)
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     'Class的Cache
     Private Function getClass()
      Dim BlogClass
      Set BlogClass = New clsClass
      BlogClass.Connection = Conn
      BlogClass.nodeUser(0)
      getClass = BlogClass.Value
      Set BlogClass = Nothing
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '更新Cache
     Public Sub Update()
      Select Case CacheType
       Case "Class"
       Application(cheName) = getClass()
      End Select
     End Sub
     '-----------------------------------------------------------------------------------
    End Class
    %>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/26 22:02:00
     
     上水道的 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      注册:2004/1/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给上水道的发送一个短消息 把上水道的加入好友 查看上水道的的个人资料 搜索上水道的在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看上水道的的博客4
    发贴心情 
    <%
    Class clsClass
     Private Conn
     Private i
     Private outPut
     
     '-----------------------------------------------------------------------------------
     '初始化当前页的值
     Private Sub Class_Initialize
     End Sub
     '-----------------------------------------------------------------------------------

     '-----------------------------------------------------------------------------------
     '设置 Terminate 事件。
     Private Sub Class_Terminate
     End Sub
     '-----------------------------------------------------------------------------------

     '###################################################################################
     '# 属性设置
     '###################################################################################

     '-----------------------------------------------------------------------------------
     '属性,设置数据库连接对象
     Public Property Let Connection(Obj_Conn)
      Set Conn = Obj_Conn
     End Property
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '属性,得到输出的树目录
     Public Property Get Value()
      Value = outPut
     End Property
     '-----------------------------------------------------------------------------------

     '###################################################################################
     '# 函数
     '###################################################################################

     '-----------------------------------------------------------------------------------
     '增加新分类
     Public Function newClass(Pid,Name)
      Dim CMD,Rs
      Set CMD = Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_NewClass"
      On Error Resume Next
      Set Rs = CMD.Execute ( ,Array(Pid,Name))
      Set CMD = Nothing
      If Err.number <> 0 Then
       newClass = -1
      Else
       newClass = 0
      End If
      Set Rs = Nothing
      Call refresh()
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '修改分类
     Public Function modiClass(Name,Id)
      Dim CMD,Rs
      Set CMD = Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_ModiClass"
      On Error Resume Next
      Set Rs = CMD.Execute ( ,Array(Name,Id))
      Set CMD = Nothing
      If Err.number <> 0 Then
       modiClass = -1
      Else
       modiClass = 0
      End If
      Set Rs = Nothing
      Call refresh()
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '删除分类
     Public Function delClass(Id)
      Dim tempRs
      set tempRs = listClass(cint(Id))
      do while not tempRs.Eof
       '递归删除子目录
       delClass(CInt(tempRs(0)))
      tempRs.MoveNext
      loop
      Dim CMD,Rs
      Set CMD = Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_DelClass"
      On Error Resume Next
      Set Rs = CMD.Execute ( ,Array(Id))
      Set CMD = Nothing
      If Err.number <> 0 Then
       delClass = -1
      Else
       delClass = 0
      End If
      Set Rs = Nothing
      tempRs.close
      set tempRs = nothing
      Call refresh()
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '修改分类排序
     Public Function orderClass(Order,Id)
      Dim CMD,Rs
      Set CMD = Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_OrderClass"
      On Error Resume Next
      Set Rs = CMD.Execute ( ,Array(Order,Id))
      Set CMD = Nothing
      If Err.number <> 0 Then
       orderClass = -1
      Else
       orderClass = 0
      End If
      Set Rs = Nothing
      Call refresh()
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '分类列表
     Public Function listClass(Pid)
      Dim CMD,Rs
      Set CMD=Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_ClassList"
      Set Rs = CMD.Execute ( ,Array(Pid))
      Set CMD = Nothing
      Set listClass = Rs
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '根据C_Id得到C_Name
     Public Function getCName(Id)
      Dim CMD,Rs
      Set CMD = Server.CreateObject("ADODB.COMMAND")
      CMD.ActiveConnection = Conn
      CMD.CommandType = 4
      CMD.CommandText = "Blog_getCName"
      Set Rs = CMD.Execute ( ,Array(Id))
      Set CMD = Nothing
      getCName = Rs(0)
     End Function
     '-----------------------------------------------------------------------------------

     '-----------------------------------------------------------------------------------
     '生成树目录
     Public Function nodeUser(parent)
      dim rs,j,innerPic,eventCancel,shutEvent
      shutEvent = " onclick=""javascript:event.cancelBubble = true;"" onmouseover=""javascript:event.cancelBubble = true;"" onmouseout=""javascript:event.cancelBubble = true;"""
      set rs = listClass(parent)
      do while not rs.Eof
       i=i+1
       innerPic = istail(cint(rs(0)))
       if instr(innerPic,"nochild") <> 0 then
        eventCancel = "getPID(" & rs(0) & ")"
       else
        eventCancel = "changeshow(" & rs(0) & ")"
       end if
       outPut = outPut & "<table bgcolor=""#FFFBFF"" border=""0"" width=""100%"" style=""cursor:hand"" cellpadding=""0"" cellspacing=""0"">"
       outPut = outPut & "<tr onclick=""" & eventCancel  & """ onmouseover=""overtree()"" onmouseout=""outtree()""><td id=""node"" name=""node"">"
       for j=1 to i
        outPut = outPut & ("&nbsp;&nbsp;")
       next
       outPut = outPut & innerPic
       outPut = outPut & getCName(cint(rs(0)))
       outPut = outPut & "</td></tr>"
       outPut = outPut & "<tr style=""display:none""><td id=""node"" name=""node"">"
       '递归来显示出为根的树型结构
       nodeUser(rs(0))
       outPut = outPut & "</td></tr></table>"
       rs.MoveNext
      loop
      i=i-1
      rs.close
      set rs=nothing
     End Function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '是否末端
     Private function istail(parentID)
      Dim rs,shutEvent
      shutEvent = " onclick=""javascript:event.cancelBubble = true;"" onmouseover=""javascript:event.cancelBubble = true;"" onmouseout=""javascript:event.cancelBubble = true;"""
      set rs = listClass(parentID)
      if rs.Eof then
       istail = "<img src=""/images/treeview/nochild.gif"" border=""0"" " & shutEvent & " style=""cursor:default;"">&nbsp;<img src=""/images/treeview/page.gif"" border=""0"" " & shutEvent & " style=""cursor:default;"">&nbsp;"
      else
       istail = "<img src=""/images/treeview/plus.gif"" border=""0"" " & shutEvent & " style=""cursor:default;"">&nbsp;<img src=""/images/treeview/folder.gif"" border=""0"" " & shutEvent & " style=""cursor:default;"">&nbsp;"
      end if
     end function
     '-----------------------------------------------------------------------------------
     
     '-----------------------------------------------------------------------------------
     '刷新Cache
     Private Sub refresh()
      Dim BlogCache
      Set BlogCache = New clsCache
      With BlogCache
       .Connection = Conn
       .Name = "Blog_Class"
       .cheType = "Class"
       .Update()
      End With
      Set BlogCache = Nothing
     end Sub
     '-----------------------------------------------------------------------------------
    End Class
    %>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/26 22:02:00
     
     愚者 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:愚者
      等级:计算机学士学位
      文章:259
      积分:2375
      门派:XML.ORG.CN
      注册:2004/10/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给愚者发送一个短消息 把愚者加入好友 查看愚者的个人资料 搜索愚者在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看愚者的博客5
    发贴心情 
    呵呵!!
    謝謝你的指教!!!!

    ----------------------------------------------
    http://photo.cnitv.com/PicLib/Pictures/Pi_21377.gif
    人生的意义不在马到成功,而在于不断求索,奋力求成。每一件有意义的事都需要不得我们以坚强的信念去完成,这样,我们的生活才会更加充实,意志更加坚强。
    人与人之间虽然相隔很近,但是心却离得很远!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/30 3:36:00
     
     npuhetao 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:骨灰级菜鸟
      等级:大二(研究C++)
      文章:230
      积分:2708
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给npuhetao发送一个短消息 把npuhetao加入好友 查看npuhetao的个人资料 搜索npuhetao在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看npuhetao的博客6
    发贴心情 
    不错不错。

    ----------------------------------------------
    你硬要把单纯的事情看得很严重,那样子你会很痛苦。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/24 20:46:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/7/29 16:00:15

    本主题贴数6,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    156.250ms