蛙蛙推荐:asp中模拟.net中的cache

cache

<!--
为了提高网站首页的性能,首页凡是需要调用数据库显示数据的地方都会先试图从缓存中调用数据,
如果缓存中没有可用数据再打开数据库取出记录集,为了让页面显示数据和数据库在一定时间内同步,
我们把缓存的过期时间设置成30秒.
声明:缓存管理类出自于动网论坛7.0
注意:最好不要在缓存里直接缓存带状态的对象和MTA模式的对象,比如说直接缓存记录集或者数据库链接对象等.
-->
<%
Sub ShowRsArr(rsArr)
'2005-1-27 by 蛙蛙王子
'用表格显示记录集getrows生成的数组的表结构
'
Response.Write "<table width=100% border=0 cellspacing=0 cellpadding=0>"
If Not IsEmpty(rsArr) Then
For y=0 To Ubound(rsArr,2)
Response.Write"<tr>"
for x=0 to Ubound(rsArr,1)
Response.Write "<td>"&rsArr(x,y)&"</td>"
next
Response.Write"</tr>"

next
Else
Response.Write "<tr>"
Response.Write "<td colspan="&rs.fields.count-1&">No Records</td>"
Response.Write "</tr>"
End If
Response.Write "</table>"
End Sub
Class Cls_Cache
Rem ==================使用说明=================================================================================
Rem = 本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。=
Rem = 作用:缓存和缓存管理类 =
Rem = 公有变量:Reloadtime 过期时间(单位为分钟)缺省值为14400, =
Rem = MaxCount 缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300 =
Rem = CacheName 缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。 =
Rem = 属性:Name 定义缓存对象名称,只写属性。 =
Rem = 属性:value 读取和写入缓存数据。 =
Rem = 函数:ObjIsEmpty()判断当前缓存是否过期。 =
Rem = 方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。 =
Rem ===========================================================================================================
Public Reloadtime,MaxCount,CacheName
Private LocalCacheName,CacheData,DelCount
Private Sub Class_Initialize()
Reloadtime=14400
CacheName="Dvbbs"
End Sub
Private Sub SetCache(SetName,NewValue)
Application.Lock
Application(SetName) = NewValue
Application.unLock
End Sub
Private Sub makeEmpty(SetName)
Application.Lock
Application(SetName) = Empty
Application.unLock
End Sub
Public Property Let Name(ByVal vNewValue)
LocalCacheName=LCase(vNewValue)
End Property
Public Property Let Value(ByVal vNewValue)
If LocalCacheName<>"" Then
CacheData=Application(CacheName&"_"&LocalCacheName)
If IsArray(CacheData) Then
CacheData(0)=vNewValue
CacheData(1)=Now()
Else
ReDim CacheData(2)
CacheData(0)=vNewValue
CacheData(1)=Now()
End If
SetCache CacheName&"_"&LocalCacheName,CacheData
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " please change the CacheName."
End If
End Property
Public Property Get Value()
If LocalCacheName<>"" Then
CacheData=Application(CacheName&"_"&LocalCacheName)
If IsArray(CacheData) Then
Value=CacheData(0)
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " The CacheData Is Empty."
End If
Else
Err.Raise vbObjectError + 1, "DvbbsCacheServer", " please change the CacheName."
End If
End Property
Public Function ObjIsEmpty()
ObjIsEmpty=True
CacheData=Application(CacheName&"_"&LocalCacheName)
If Not IsArray(CacheData) Then Exit Function
If Not IsDate(CacheData(1)) Then Exit Function
If DateDiff("s",CDate(CacheData(1)),Now()) < 60*Reloadtime Then
ObjIsEmpty=False
End If
End Function
Public Sub DelCahe(MyCaheName)
makeEmpty(CacheName&"_"&MyCaheName)
End Sub
End Class
Dim strconn,rs
strconn="Driver={sql server};server=localhost;database=northwind;uid=sa;pwd=sa;"
Public Function GetEmployees()
Dim SQL,Rs,Cache
Set Cache=New Cls_Cache
Cache.Reloadtime=0.5
Cache.CacheName="wawa"
Cache.Name="Employees"
If Cache.ObjIsEmpty() Then
Set rs=Server.CreateObject("ADODB

时间: 2024-10-03 18:15:04

蛙蛙推荐:asp中模拟.net中的cache的相关文章

在ASP中模拟.NET下的cache技术

cache 为了提高网站首页的性能,首页凡是需要调用数据库显示数据的地方都会先试图从缓存中调用数据,如果缓存中没有可用数据再打开数据库取出记录集,为了让页面显示数据和数据库在一定时间内同步,我们把缓存的过期时间设置成30秒. 声明:缓存管理类出自于动网论坛7.0 注意:最好不要在缓存里直接缓存带状态的对象和MTA模式的对象,比如说直接缓存记录集或者数据库链接对象等. <%Sub ShowRsArr(rsArr) '用表格显示记录集getrows生成的数组的表结构 ' Response.Write

蛙蛙推荐:asp中的多条件组合查询实现

条件|组合查询 <!-- 蛙蛙推荐:asp中的多条件组合查询实现多条件组合查询在很多地方都很有用,本文用一个简单的例子来实现一种组合查询在示例之前请确保你安装有sqlserver2000及其默认数据库NorhtWind.代码非常直观,加上关键部分我做了注释,所以很容易理解.需要注意的几个问题就是:1.在字符串连接的时候注意两个需要连接的串中第二个串的开头第一个字符应该打一个空格,这样不至于两个串的首尾相连成一个单词.2.righ的left函数取出的结构区分大小写,如果你字符串里用的是'and',

蛙蛙推荐:巧用缓存提高asp程序的性能

程序|缓存|性能 <!-- 蛙蛙推荐:巧用缓存提高asp程序的性能 --><!--为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application,但是你修改了数据库后怎么让application更新呢,本文给你提供了一个合理的解决办法,如果谁有更好的算法,请跟帖讨论一下,谢谢--><%Class wawa_app_getrowspublic Function wawa_Get_List(strapp,strconn,strsql)'*************

蛙蛙推荐:整理了一些SQL数据库技巧,贴一下

技巧|数据|数据库 蛙蛙推荐:整理了一些SQL数据库技巧,贴一下 一.怎样删除一个表中某个字段重复的列呀,举个例子表[table1]id name1 aa2 bb3 cc1 aa2 bb3 cc我想最后的表是这样的id name1 aa2 bb3 cc回答:将记录存到临时表#t中,重复的记录只存一条,然后将临时表#t中的记录再存回原表中,注意"select distinct id,class,name"要包含你需要的所有字段,否则有些字段就被删掉了.在查询管理器里执行下面代码:----

蛙蛙学习asp.net总结(之一)

asp.net 认识Microsoft公司的Asp.net有一段时间了,感觉asp.net确实在功能方面和性能方面比asp有了很大的改进(之前,我一直在写asp程序),并总结了一些内容,这里和大家分享一下.由于笔者经验很少,所以文中有在技术上的错误或者需要改进的地方,欢迎和我交流. 由于个人比较喜欢使用C#语言,所以例子里大多都是用C#示例的,但是这里主要是阐述一些原理性的东西,所以没有过多的依赖于具体的语言,如果你比较偏向于VB可以参考下面这篇文章来暂时转换一下自己的思想: 代码换肤术--C#

在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件_自学过程

导言 在前面三节的示例中,GridView和DetailsView控件使用的是绑定列和CheckBoxField(绑定GridView和DetailsView时,通过智能标记可以令VS根据数据库自动增加对应的类型).当编辑GridView或者DetailsView中的一行时,非只读属性的绑定列将自动转为textbox,以便用户修改现有的数据.同样地,当在DetailsView控件中新增记录时,InsertVisible属性为true(默认值)的绑定列会呈现出空的textbox,以接受用户输入.C

ASP.NET 2.0 中的异步页功能应用

asp.net|异步 下载本文源代码:WickedCode0510.exe ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等.但我认为最棒的功能是异步页,接下来让我告诉您其中的原因. 当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程.一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求.如果一个同步请求成为 I/O 绑定(例如,如果它调用一个远程 Web 服务或查询一个远程数据库,并等待调用

ASP.NET 2.0 中使用自定义缓存依赖

asp.net|缓存 在 ASP.NET 1.x 中,我们可以使用 CacheDependency 来实现缓存依赖策略,但由于这个类是 sealed 的,我们无法继承这个类来实现我们自己的策略.但是到了 ASP.NET 2.0,我们已经可以从这个类派生出自己的缓存依赖类了. 假定我们要设计一个页面,需要从博客园首页获取最新的贴子信息.为了提高性能,我们希望页面数据仅当博客园首页有更新时才重新生成,否则的话就直接从缓存中获取.如何实现? 一.设计 BlogCacheDependency 类 先分析

ASP.NET 2.0中的健康监测系统(Health Monitoring)(3)

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx 介绍 在之前的文章中(译者注:ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用,ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息),我们已经知道了ASP.NET 2.0的健康监测系统是用于监测ASP.NET应用程序的运行状况的,它可以记录事件信息到你指定的日志源中