详细的关于ASP缓存类的教程 3

  很简单把,其实就是用了很简单的Application技术,而且就一句话的不同: 
  Application("BooksListBox") = BooksListBox 
  你可以验证一下你就会发现服务器上的请求数量会降低不少的。这种情况尤其适合与那些更新不是很频繁的网站内容,例如你一天(或则很长时间)只更新一次。 

  下面再讨论一种客户端的缓存技术这种技术也叫断开连接的ADO连接技术(翻译水平太次,听上去怎么这么别扭)。这种技术主要使用在用来保存用户个人信息,例如用户的密码,代号等等上面。它主要使用了ADO的一些属性。同时也回答了一些网友曾经提到过的能否在Applocation中使用ADO对象的问题。解释不清楚,下面让代码来发言: 
文件GLOBAL.ASA: 

< !--METADATA TYPE="TypeLib" FILE="C:\Program Files\Common 
Files\system\ado\msado15.dll"-- > 
< SCRIPT LANGUAGE=VBScript RUNAT="Server" > 
Sub Application_OnStart 
SQL = "Select UserName, Password FROM UserInfo" 
cnnUsers = "DSN=User" 
Set rsUsers = Server.CreateObject("ADODB.Recordset") 
'注意下面这两句话,就是用来实现那个叫可用的断开连接的ADO技术 
rsCustomers.CursorLocation = adUseClient 
rsCustomers.Open SQL, cnnAdvWorks, adOpenStatic, AdLockReadOnly 
' 断开RecordSet的和数据库的连接 
rsCustomers.ActiveConnection = Nothing 
Set Application("rsCustomers") = rsCustomers 
End Sub 

文件Users.ASP 

< % 
'Clone方法使得每个用户拥有自己的一个RecordSet集合 
Set yourUsers = Application("rsUsers").Clone 
Set UserName = yourUsers("UserName") 
Set Password = yourUsers("Password") 
Do Until yourUsers.EOF 
% > 
用户姓名:< %= UserName % > 用户密码:< %= Password % > 
< % 
yourUsers.MoveNext 
Loop 
% >
  
至于缓存的作用,我想我也不用再多说了,它的作用已经很明显,特别是对于信息量非常大或是全数据库页面的网站,他能很好地利用主机的内存资源,加速ASP的执行效率,减轻服务器的负担,而动网在这一方面做得是最突出的,像他现在的dvbbs7.1.0版,更是在缓存的利用上更上一层楼,前后台大多的操作都和缓存有关,而现在动网里用的也就是迷城浪子的缓存类:

<%
Class Cls_Cache 
'==================使用说明==================== 
'本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。 
'作用:缓存和缓存管理类 
'公有变量:Reloadtime 过期时间(单位为分钟)缺省值为14400 
'MaxCount 缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300 
'CacheName 缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。 
'属性:Name 定义缓存对象名称,只写属性。 
'属性:value 读取和写入缓存数据。 
'函数:ObjIsEmpty()判断当前缓存是否过期。 
'方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。 
'======================== 
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 

Public Property Let Name(ByVal vNewValue) '缓存对象名称
LocalCacheName=LCase(vNewValue) 
End Property




有什么问题可以加群,100852896
点击这里加入此群 在线提问
文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 8300
博主QQ: 友情链接请找我
QQ群: 灰色档案
返回顶部 关闭