软件教程

详解ASP中缓存CACHE技术

来源: 本站    类别: 软件教程    日期: 2010/10/7

 

我认为在ASP中最好的办法是用编程实现定时刷新Cache,也就是说给Application中储存的设一个过期时间。当然,在ASP中Application对象没有这样一个ExpireTime属性。这需要用程序实现。
 

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"
    %>

相关文章


Copyright © 2004 - 2024 CNHWW Inc. All Rights Reserved
石家庄市征红网络科技有限公司版权所有 邮政编码:050051
服务电话:0311-85315152 13931185013 在线客服QQ:81447932 / 81447933 邮箱: cnhww@163.com