网络编程
位置:首页>> 网络编程>> Asp编程>> ASP中CACHE缓存技术

ASP中CACHE缓存技术

  发布时间:2010-05-03 10:58:00 

标签:cache,缓存,asp

我认为在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"
    %>


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com