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

所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一 样,考虑使用的是application对象,因为它是所有访问者的共用的对象,存储的信息和定义的事件能够为所有者访问者使用,这里要使用asp内置对 象APPLICATION了,关于application,有2个方法[lock和unlock],2个集合[content和 staticobjects],2个事件[开始的application_onstart和application_end],application变 量不会因为用户的离开而消失,一旦建立,一直等到网站关闭和程序卸载为止,正因为如此,使用的时候要特别小心!,否则会占用内存,我在这里不用多说,有兴 趣的查阅相关资料吧,大体是这样.我们是把数据写入一个自定义的application里面,在制定的时间读取刷新的,大体思路就是这样.

  实例演示.先建立一个简单的数据库,写个function读取一下,写入一个dim变量temp中:

以下是引用片段:
  

代码如下:

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大显身手了: 


代码如下:

  '该函数是写入缓存  
  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)

相关推荐

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

    所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一 样,考虑使用的是application对象,因为它是所有访问者的共用的对象,存储的信息和定义的事件能够为所有者访问者使用,这里要使用asp内置对 象APPLICATION了,关于application,有2个方法[lock和unlock],2个集合[content和 staticobjects],2个事件[开始的application_onstart和

  • 使用php数据缓存技术提高执行效率

    目录 PHP 缓存介绍 什么是缓存 缓存作用 常用缓存类型 PHP 常用内存缓存介绍 php opcode缓存 php文件缓存 为什么要使用php缓存技术?理由很简单:提高效率.在程序开发中,获取信息的方式主要是查询数据库,除此以外,也可能是通过Web Services或者别的某种方法,无论哪种方法,在大量的并发访问面前,它们都可能成为效率的瓶颈,为了解决这些问题,人们提出了很多解决方案,其中一些是利用优化软件(如:APC,Eaccelerator,Zend Optimizer等等)来提高程序的

  • [Asp.Net Core]提高开发效率的方法

    一.概述 在园子里面有很多关于各种技术细节的研究文章,都是比较牛逼的框架研究:但是一直没有看到关于怎么样提高开发效率的文章,大多提高开发效率的文章都是关于自动化等方面的辅助工具类型的,而不是开发中的一些小技巧:今天从编码规范.编码技巧.开发思想.设计模式等各方面的经验来分享如何提高开发效率. 二.实际场景 在这个前后端分离盛行的开发年代,分工比较明确,开发者分前端开发者和后端开发者,然而感到欣慰的是.net 开发者大多是担任着全栈开发的职责,有经验的开发者都是从前端走过来的,说白了前端业务代码对

  • asp.net中SqlCacheDependency缓存技术概述

    本文实例讲述了asp.net中SqlCacheDependency缓存技术,对于大型web程序设计来说具有很高的实用价值.具体如下: 对于访问量大,但更新较少的网站中使用缓存技术,可以大大提高运行效率:加上.NET 2.0提供的缓存依赖机制,我们可以很方便的对缓存进行管理更新:以下是本人学习的一点心得体会,希望能够起到抛砖引玉的作用. 建立缓存依赖,实现代码如下: /**//// <summary> /// 建立缓存依赖项 /// </summary> /// <return

  • 提高网页效率的14条注意事项图文第1/3页

    网站最基本的东西是什么? --内容?SEO(搜索引擎优化)?UE(用户体验)?都不对!是速度! 内容再丰富的网站,如果慢到无法访问也是毫无意义的: SEO做的再好的网站,如果搜索蜘蛛抓不到也是白搭: UE设计的再人性化的网站,如果用户连看都看不到也是空谈. 所以网页的效率绝对是最值得关注的方面.如何才能提高一个网页的效率呢?Steve Souders(Steve Souders的资料http://www.oreillynet.com/pub/au/2951)提出的提高网页效率的14条准则,而这些

  • ASP.NET Core MVC缓存Tag Helpers到内存

    简介 缓存可以大大提高应用程序加载时间和响应速度.我们可以使用缓存Tag Helpers缓存不会频繁更改的HTML内容. 在上一篇文章中,我们谈到了Tag Helpers,演示Tag Helpers能做什么.如何使用它们以及一些最常用的Tag Helpers. 今天,我们将看看如何使用缓存Tag Helpers和它们的益处. Cache Tag Helper 首先说一下 <cache> Tag Helper.与其它Tag Helper不同,其它Tag Helper被当作属性使用,缓存Tag H

  • PHP编程开发怎么提高编程效率 提高PHP编程技术

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:指用

  • Python利用IPython提高开发效率

    一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代 码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率. IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作:它还有一个基于 Web 的交互式笔记

  • MySQL查询优化:LIMIT 1避免全表扫描提高查询效率

    在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率. 例如下面的用户表(主键id,邮箱,密码): 复制代码 代码如下: create table t_user( id int primary key auto_increment, email varchar(255), password varchar(255) ); 每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录. SELECT * FROM t

  • MySQL提高分页效率

    下面就是大数据量时提高分页的效率的测试代码,分享给大家. --提高分页效率:实现分页时只读取显示数据,需要先在数据库创建数据库"TestForPaging" use TestForPaging go --创建表SomeData create table SomeData ( id int primary key, name varchar(30) null, description text ) go --插入数据 insert into SomeData values(1,'num1

随机推荐