這裡介紹ASP利用Application來實現緩存功能,用來提高頁面的打開速度的一種方法,具體代碼如下:
01
<%
02
function refreshrecords()
03
Dim sql, conn, rs
04
sql = "select top 10 * FROM Dv_Topic order by DateAndTime desc"
05
Set conn = Server.CreateObject("ADODB.Connection")
06
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&server.mappath("dv.mdb")
07
Set rs = Server.CreateObject("ADODB.Recordset")
08
rs.Open sql,conn, 1, 1
09
10
If Not rs.EOF Then
11
Dim temp
12
temp="<ul>"
13
for i=1 to 10
14
temp = temp&"<li><a href=""http://www.aspbc.com/dispbbs.ASP?boardID="&rs("Boardid")&"&ID="&rs("topicid")&"&page=1"">"&rs("Title")&"("&rs("PostUserName")&")</a></li>"
15
''這個地方各有所好了,顯然和一個用table,td,tr,tbody來寫前台的人合作,是一件很痛苦的事情.
16
rs.MoveNext
17
i=i+1
18
next
19
temp = temp & "</ul>"
20
refreshrecords = temp
21
Else
22
refreshrecords = "數據調用失敗."
23
End If
24
rs.Close
25
conn.Close
26
Set rs = Nothing
27
Set conn = Nothing
28
End Function
29
30
31
''下面的function則是用來更新緩存的
32
33
function displayrecords(secs)
34
if Application("cache")="" or isempty(Application("cache")) then'''' 程序第一次運行時候更新緩存
35
''''application("cache")用來保存我們需要緩存在內存中的內容
36
''''application("cache_time")用來保留緩存上次更新的時間
37
''''我們只在兩種情況下是需要調用refresh函數來訪問數據庫來更新緩存
38
''''第一種就是服務器重啟 或者其他意外導致application存儲的值丟失
39
Application.Lock
40
Application("cache_date")=now()
41
''更新緩存時間
42
Application("cache") = refreshrecords()
43
''更新緩存內容
44
''codeby niceidea 簽名
45
Application.UnLock
46
end if
47
48
if DateDiff("s", Application("cache_date"),Now)> secs then ''比較上次更新時間與當前時間的差值
49
''''另外一種需要更新緩存的情況就是緩存到期 所謂緩存就是保留一定時間的數據 定期更新恐怕是最常見的
50
Application.Lock
51
Application("cache_date")=now()
52
Application("cache") = refreshrecords()
53
Application.UnLock
54
end if
55
Response.Write Application("cache")
56
End Function
57
%>(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)
最後 調用的方法是:
1
<% Call displayrecords(300) %>(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)