源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP提高数据显示效率-缓存探幽

  • 时间:2021-01-06 05:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP提高数据显示效率-缓存探幽
所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一 样,考虑使用的是application对象,因为它是所有访问者的共用的对象,存储的信息和定义的事件能够为所有者访问者使用,这里要使用asp内置对 象APPLICATION了,关于application,有2个方法[lock和unlock],2个集合[content和 staticobjects],2个事件[开始的application_onstart和application_end],application变 量不会因为用户的离开而消失,一旦建立,一直等到网站关闭和程序卸载为止,正因为如此,使用的时候要特别小心!,否则会占用内存,我在这里不用多说,有兴 趣的查阅相关资料吧,大体是这样.我们是把数据写入一个自定义的application里面,在制定的时间读取刷新的,大体思路就是这样.   实例演示.先建立一个简单的数据库,写个function读取一下,写入一个dim变量temp中: 以下是引用片段:   
[u]复制代码[/u] 代码如下:
Function DisplayRecords()     '这个函数原来给一个变量temp付上记录的值     Dim sql, conn, rs     '符合条件的sql语句     sql = "SELECT id, [szd_f], [szd_t] FROM admin"     '打开数据库连接     Set conn = Server.CreateObject("ADODB.Connection")     conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db.mdb")     Set rs = Server.CreateObject("ADODB.Recordset")     rs.Open sql, conn, 1, 3     '当符合sq语句l的数据没有显示完毕时     If Not rs.EOF Then     '给temp变量赋值     Dim temp     temp = "<table width=""90%"" align=""center"""     temp = temp & " border=""1"" bordercolor=""silver"""     temp = temp & " cellspacing=""2"" cellpadding=""0"">"     temp = temp & "<tr bgcolor=""#CCDDEE""><td width=""5%"""     temp = temp & ">ID</td><td>操作</td>"     temp = temp & "<td>数值</td></tr>"     While Not rs.EOF     temp = temp & "<tr><td bgcolor=""#CCDDEE"">"     temp = temp & rs("ID") & "</td><td>" & rs("szd_f")     temp = temp & "</td><td>" & rs("szd_t")     temp = temp & "</td></tr>"     rs.MoveNext     Wend     temp = temp & "</table>"     'temp赋值完毕,把它再返回给函数     DisplayRecords = temp     Else     DisplayRecords = "Data Not Available."     End If     '释放内存     rs.Close     conn.Close     Set rs = Nothing     Set conn = Nothing     End Function  
  ok,上面的函数改造完毕,调用的时候就是DisplayRecords.    下面是application大显身手了: 
[u]复制代码[/u] 代码如下:
  '该函数是写入缓存     Function DisplayCachedRecords(Secs)     Dim retVal, datVal, temp1     'Secs是每次要刷新数据的时间, retVal是数据,datVal是剩余时间     retVal = Application("cache_demo") '取得appliction的值     datVal = Application("cache_demo_date") '取得appliction的值     '判断datVal 的值,也就是要计算时间过去了没     If datVal = "" Then     '如果是空,datVal值为当前时间按秒加上secs定义的时间     datVal = DateAdd("s",Secs,Now)     End If     'temp1是判断当前时间和datVal的秒差     temp1 = DateDiff("s", Now, datVal)     '如果retVal已经是上面函数的返回值且时间大于0     If temp1 > 0 And retVal <> "" Then     '本函数返回记录数     DisplayCachedRecords = retVal     Response.Write "<b><font color=""green"">利用缓存读取数据"     Response.Write " ... (" & temp1 & " 秒剩余)</font></b>"     Response.Write "<br><br>"     Else     'retVal 是空的话,就赋予DisplayRecords的值给变量temp2     Dim temp2     temp2 = DisplayRecords()     '保存到Application.------------------>重点     Application.Lock     Application("cache_demo") = temp2     Application("cache_demo_date") = DateAdd("s",Secs,Now)     Application.UnLock     DisplayCachedRecords = temp2     ' 这里随便写上了记录的缓存的过去时间,相对总秒数倒差 :     Response.Write "<b><font color=""red"">刷新缓存显示 ..."     Response.Write "</font></b><br><br>"     End If     End Function     %>  
  说明完毕.   以下为完整无注释代码   调用方法:<%=DisplayCachedRecords(20)%>   写在后面的话:如果你感觉你的服务器内存不够大的话,不要大量使用缓存.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部