手机
当前位置:查字典教程网 >编程开发 >ASP教程 >在JScript中使用缓存技术的实际代码
在JScript中使用缓存技术的实际代码
摘要:在使用VBScript时,我们可以用Application缓存数组来实现缓存,例:程序代码:复制代码代码如下:Dimrs,arrrs.Ope...

在使用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时的缓存实现。

【在JScript中使用缓存技术的实际代码】相关文章:

asp中实现随机分组程序的代码

使用ASP删除指定IIS站点

在asp中通过getrows实现数据库记录分页的一段代码

一次性下载远程页面上的所有内容第1/2页

在ASP中调用存储过程的几种方法

本人常用的分页代码

在ASP编程中使用数组

ASP 中Split 函数的实例

简单过滤一下广告的代码

简单的ASP中经常用到的代码[推荐]第1/4页

精品推荐
分类导航