当前位置:K88软件开发文章中心编程语言AspAsp01 → 文章内容

asp教程:asp利用Application来实现缓存功能

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 8:34:26

这里介绍asp利用Application来实现缓存功能,用来提高页面的打开速度的一种方法,具体代码如下:

<
%function refreshrecords()Dim sql, conn, rssql = "select top 10 * FROM Dv_Topic order by DateAndTime desc"Set conn = Server.CreateObject("ADODB.Connection")conn.Open "DRIVER=
{Microsoft Access Driver (*.mdb)}
DBQ="&
server.mappath("dv.mdb")Set rs = Server.CreateObject("ADODB.Recordset")rs.Open sql,conn, 1, 1If Not rs.EOF ThenDim temptemp="<
ul>
"for i=1 to 10temp = temp&
"<
li>
<
a href=""http://www.K88.NET/dispbbs.asp?boardID="&
rs("Boardid")&
"&
ID="&
rs("topicid")&
"&
page=1"">
"&
rs("Title")&
"("&
rs("PostUserName")&
")<
/a>
<
/li>
"''这个地方各有所好了,显然和一个用table,td,tr,tbody来写前台的人合作,是一件很痛苦的事情.rs.MoveNexti=i+1nexttemp = temp &
"<
/ul>
"refreshrecords = tempElserefreshrecords = "数据调用失败."End Ifrs.Closeconn.CloseSet rs = NothingSet conn = NothingEnd Function''下面的function则是用来更新缓存的function displayrecords(secs)if Application("cache")="" or isempty(Application("cache")) then '''' 程序第一次运行时候更新缓存''''application("cache")用来保存我们需要缓存在内存中的内容''''application("cache_time")用来保留缓存上次更新的时间''''我们只在两种情况下是需要调用refresh函数来访问数据库来更新缓存 ''''第一种就是服务器重启 或者其他意外导致application存储的值丢失Application.LockApplication("cache_date")=now()''更新缓存时间Application("cache") = refreshrecords()''更新缓存内容''codeby niceidea 签名 Application.UnLockend ifif DateDiff("s", Application("cache_date"),Now)>
secs then ''比较上次更新时间与当前时间的差值''''另外一种需要更新缓存的情况就是缓存到期 所谓缓存就是保留一定时间的数据 定期更新恐怕是最常见的 Application.LockApplication("cache_date")=now()Application("cache") = refreshrecords()Application.UnLockend ifResponse.Write Application("cache")End Function%>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


最后 调用的方法是:

<
% Call displayrecords(300) %>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)

300 = 5 × 60秒,表示5分钟更新一次

 



asp教程:asp利用Application来实现缓存功能