主页 > 知识库 > 在JScript中使用缓存技术的实际代码

在JScript中使用缓存技术的实际代码

热门标签:外呼系统怎么话费 友邦互联电销机器人违法吗 电销机器人采购 硅基电话机器人加盟 滴滴地图标注上车点 无营业执照地图标注教学 地图标注还可以做吗 高质量的电销外呼系统 宿州防封外呼系统平台
在使用VBScript时,我们可以用Application缓存数组来实现缓存,例:

程序代码:
复制代码 代码如下:

Dim rs,arr 
rs.Open conn,sql,1,1 
arr=rs.GetRows() 
Application.Lock() 
Application("cache")=arr 
Applicatoin.UnLock() 

在VBScript里,数组是可以存到Application对象里的,但是如果ASP的语言选择为JScript的话,那么就有些不妙了,我们在使用Application储存一个数组时,会出现以下错误:

引用内容:
Application object, ASP 0197 (0x80004005)

Disallowed object use

Cannot add object with apartment model behavior to the application intrinsic object.

在微软的知识库可以找到具体原因如下:

引用内容:
JScript arrays are considered to be "Apartment" COM components. Only Component Object Model (COM) components that aggregate the Free Threaded Marshaler (FTM) can be assigned to Application scope within an Internet Information Server (IIS) 5.0 ASP page. Because an "Apartment" component cannot aggregate the FTM (it cannot allow a direct pointer to be passed to its clients, unlike a "Both with FTM" object), JScript arrays do not aggregate the FTM. Therefore, JScript arrays cannot be assigned to Application scope from an ASP page.

以上描述引用自:PRB: Error When You Store a JScript Array in Application Scope in IIS 5.0

因此,为了解决这个问题,在Google里找了一大会,终于找到了一篇文章《Application对象的Contents和StaticObjects做Cache的一些结论》,解决了这个问题,方法就是使用Application.StaticObject存放一个Scripting.Dictionary对象,然后再使用Scripting.Dictionary对象来存放需要缓存的数据。

据此,写了一个操作缓存的类,实现put、get、remove和clear方法,使用之前,需要在global.asa中添加一个object:

程序代码:
object id="xbsCache" runat="server" scope="Application" progid="Scripting.Dictionary">/object>
类的实现如下:
复制代码 代码如下:

script language="JScript" runat="server"> 
/** 
 Title: cache operate class 
 Description: operate system cache 
 @Copyright: Copyright (c) 2007 
 @Author: xujiwei 
 @Website: http://www.xujiwei.cn/ 
 @Version: 1.0 
 @Time: 2007-06-29 12:03:45 
**/ 
var xbsCache = { 
    get: function(key) { 
        return Application.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实现二进制读写脚本代码
  • JScript中调用ActiveX获取访客网卡MAC地址实现代码
  • 使用 JScript 创建 .exe 或 .dll 文件的方法
  • JScript 脚本实现文件下载 一般用于下载木马
  • JScript中使用ADODB.Stream判断文件编码的代码
  • 解决 JScript 中使用日期类型数据时出现类型错误的问题
  • 解读IE和firefox下JScript和HREF的执行顺序
  • jscript读写二进制文件的方法

标签:雅安 江门 广元 新余 儋州 锡林郭勒盟 七台河 宣城

巨人网络通讯声明:本文标题《在JScript中使用缓存技术的实际代码》,本文关键词  在,JScript,中,使用,缓存,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《在JScript中使用缓存技术的实际代码》相关的同类信息!
  • 本页收集关于在JScript中使用缓存技术的实际代码的相关信息资讯供网民参考!
  • 推荐文章