时间:2021-05-25
在使用VBScript时,我们可以用Application缓存数组来实现缓存,例:
程序代码:
复制代码 代码如下:
Dimrs,arr
rs.Openconn,sql,1,1
arr=rs.GetRows()
Application.Lock()
Application("cache")=arr
Applicatoin.UnLock()
在VBScript里,数组是可以存到Application对象里的,但是如果ASP的语言选择为JScript的话,那么就有些不妙了,我们在使用Application储存一个数组时,会出现以下错误:
引用内容:
Applicationobject,ASP0197(0x80004005)
Disallowedobjectuse
Cannotaddobjectwithapartmentmodelbehaviortotheapplicationintrinsicobject.
在微软的知识库可以找到具体原因如下:
引用内容:
JScriptarraysareconsideredtobe"Apartment"COMcomponents.OnlyComponentObjectModel(COM)componentsthataggregatetheFreeThreadedMarshaler(FTM)canbeassignedtoApplicationscopewithinanInternetInformationServer(IIS)5.0ASPpage.Becausean"Apartment"componentcannotaggregatetheFTM(itcannotallowadirectpointertobepassedtoitsclients,unlikea"BothwithFTM"object),JScriptarraysdonotaggregatetheFTM.Therefore,JScriptarrayscannotbeassignedtoApplicationscopefromanASPpage.
以上描述引用自:PRB:ErrorWhenYouStoreaJScriptArrayinApplicationScopeinIIS5.0
因此,为了解决这个问题,在Google里找了一大会,终于找到了一篇文章《Application对象的Contents和StaticObjects做Cache的一些结论》,解决了这个问题,方法就是使用Application.StaticObject存放一个Scripting.Dictionary对象,然后再使用Scripting.Dictionary对象来存放需要缓存的数据。
据此,写了一个操作缓存的类,实现put、get、remove和clear方法,使用之前,需要在global.asa中添加一个object:
程序代码:
<objectid="xbsCache"runat="server"scope="Application"progid="Scripting.Dictionary"></object>
类的实现如下:
复制代码 代码如下:
<scriptlanguage="JScript"runat="server">
/**
Title:cacheoperateclass
Description:operatesystemcache
@Copyright:Copyright(c)2007
@Author:xujiwei
@Website:http://www.xujiwei.cn/
@Version:1.0
@Time:2007-06-2912:03:45
**/
varxbsCache={
get:function(key){
returnApplication.StaticObjects("xbsCache").Item("Cache."+key);
},
put:function(key,data){
Application.Lock();
Application.StaticObjects("xbsCache").Item("Cache."+key)=data;
Application.UnLock();
},
remove:function(key){
Application.Lock();
Application.StaticObjects("xbsCache").Remove("Cache."+key);
Application.UnLock();
},
clear:function(){
Application.Lock();
Application.StaticObjects("xbsCache").RemoveAll();
Application.UnLock();
}
}
</script>
如此,就完成了ASP中使用JScript时的缓存实现。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如:使用元素,实际上是让Spring执行无参或有参构造器使用元素,实际
一、go代码中使用C代码go代码中使用C代码,在go语言的函数块中,以注释的方式写入C代码,然后紧跟import“C”即可在go代码中使用C函数代码示例:go代
缓存技术在实际使用当中应用非常广泛,可以有效减轻对服务器数据库的访问压力,提高运行速度。目前很多CMS内容管理系统中频繁使用缓存机制来提高系统运行的效率。本文以
session使用注意点laravel是一款php框架了,在使用laravel时会碰到session使用问题,工作中使用的是session默认的文件缓存,在使用
本文实例讲述了PHP缓存工具XCache安装与使用方法。分享给大家供大家参考,具体如下:XCache是另外一种在PHP中使用的Opcode缓存工具。像APC一样