ASP中CACHE技术
2018-09-06 10:22
  我认为在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 
%>