当前位置:asp编程网>技术教程>Asp教程>  正文

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

2012-04-17 08:53:24   来源:网络    作者:佚名   浏览量:1977   收藏

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

<%
function refreshrecords()
Dim sql, conn, rs
sql = "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, 1

If Not rs.EOF Then
	Dim temp
	temp="<ul>"
	for i=1 to 10
	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>"
	''这个地方各有所好了,显然和一个用table,td,tr,tbody来写前台的人合作,是一件很痛苦的事情.
	rs.MoveNext
	i=i+1
	next
	temp = temp & "</ul>"
	refreshrecords = temp
Else
	refreshrecords = "数据调用失败."
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Function


''下面的function则是用来更新缓存的

function displayrecords(secs)
	if Application("cache")="" or isempty(Application("cache")) then '''' 程序第一次运行时候更新缓存
	''''application("cache")用来保存我们需要缓存在内存中的内容
	''''application("cache_time")用来保留缓存上次更新的时间
	''''我们只在两种情况下是需要调用refresh函数来访问数据库来更新缓存 
	''''第一种就是服务器重启 或者其他意外导致application存储的值丢失
	Application.Lock
	Application("cache_date")=now()
	''更新缓存时间
	Application("cache") = refreshrecords()
	''更新缓存内容
	''codeby niceidea 签名 
	Application.UnLock
	end if

	if DateDiff("s", Application("cache_date"),Now)> secs then  ''比较上次更新时间与当前时间的差值
	''''另外一种需要更新缓存的情况就是缓存到期 所谓缓存就是保留一定时间的数据 定期更新恐怕是最常见的 
	Application.Lock
	Application("cache_date")=now()
	Application("cache") = refreshrecords()
	Application.UnLock
	end if
	Response.Write Application("cache")
End Function
%>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


最后 调用的方法是:

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

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

 



关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网