程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> asp中數據緩存簡易原理示例

asp中數據緩存簡易原理示例

編輯:ASP技巧

這是ASP緩存的其中一種方法:利用application對象實現的。以前還介紹了一種文件緩存的方法:ASP文件緩存技術原理
下面介紹這種方法:

01 <% 02 ''下面的function用來從動網論壇數據庫中提出數據更新緩存 很簡單的 提出最新發表的十個帖子  03 function refreshrecords() 04 Dim sql, conn, rs 05 sql = "select top 10 *  FROM Dv_Topic order by DateAndTime desc" 06 Set conn = Server.CreateObject("ADODB.Connection") 07 conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&server.mappath("dv.mdb") 08 Set rs = Server.CreateObject("ADODB.Recordset") 09 rs.Open sql,conn, 1, 1 10   11 If Not rs.EOF Then 12 Dim temp 13 temp="<ul>" 14 for i=1 to 10 15 temp = temp&"<li><a href=""http:*/bbs.sfte.Net/dispbbs.ASP? 16 boardID="&rs("Boardid")&"&ID="&rs 17 ("topicid")&"&page=1"">"&rs("Title")&"("&rs("PostUserName") 18 &")</a></li>" 19 ''這個地方各有所好了,顯然和一個用table,td,tr,tbody來寫前台的人合作,是一件很痛苦的事情. 20 rs.MoveNext 21 i=i+1 22 next 23 temp = temp & "</ul>" 24 refreshrecords = temp 25 Else 26 refreshrecords = "數據調用失敗." 27 End If 28 rs.Close 29 conn.Close 30 Set rs = Nothing 31 Set conn = Nothing 32 End Function 33   34   35 ''下面的function則是用來更新緩存的 36   37 function displayrecords(secs) 38   39 if Application("cache")="" or isempty(Application("cache")) then '''' 程序第一次運行時候更新緩存 40 ''''application("cache")用來保存我們需要緩存在內存中的內容 41 ''''application("cache_time")用來保留緩存上次更新的時間 42 ''''我們只在兩種情況下是需要調用refresh函數來訪問數據庫來更新緩存 43 ''''第一種就是服務器重啟 或者其他意外導致application存儲的值丟失 44 Application.Lock 45 Application("cache_date")=now() 46 ''更新緩存時間 47 Application("cache") = refreshrecords() 48 ''更新緩存內容 49 ''codeby niceidea 簽名 50 Application.UnLock 51 end if 52   53 if DateDiff("s", Application("cache_date"),Now)> secs then  ''比較上次更新時間與當前時間的差值 54 ''''另外一種需要更新緩存的情況就是緩存到期 所謂緩存就是保留一定時間的數據 定期更新恐怕是最常見的 55 Application.Lock 56 Application("cache_date")=now() 57 Application("cache") = refreshrecords() 58 Application.UnLock 59 end if 60 Response.Write Application("cache") 61 End Function 62 %> 63   64 最後 調用的方法是 65 <%displayrecords(300)%> 66 300表示5分鐘更新一次 60×5=300!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved