国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

在JScript中使用緩存技術(shù)的實際代碼

2020-07-27 13:00:07
字體:
供稿:網(wǎng)友
在使用VBScript時,我們可以用Application緩存數(shù)組來實現(xiàn)緩存,例:

程序代碼:
復(fù)制代碼 代碼如下:

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

在VBScript里,數(shù)組是可以存到Application對象里的,但是如果ASP的語言選擇為JScript的話,那么就有些不妙了,我們在使用Application儲存一個數(shù)組時,會出現(xiàn)以下錯誤:

引用內(nèi)容:
Application object, ASP 0197 (0x80004005)

Disallowed object use

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

在微軟的知識庫可以找到具體原因如下:

引用內(nèi)容:
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的一些結(jié)論》,解決了這個問題,方法就是使用Application.StaticObject存放一個Scripting.Dictionary對象,然后再使用Scripting.Dictionary對象來存放需要緩存的數(shù)據(jù)。

據(jù)此,寫了一個操作緩存的類,實現(xiàn)put、get、remove和clear方法,使用之前,需要在global.asa中添加一個object:

程序代碼:
<object id="xbsCache" runat="server" scope="Application" progid="Scripting.Dictionary"></object>
類的實現(xiàn)如下:
復(fù)制代碼 代碼如下:

<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時的緩存實現(xiàn)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴城市| 会宁县| 探索| 罗城| 天柱县| 延长县| 临泉县| 义马市| 治县。| 桃源县| 澄江县| 千阳县| 浦北县| 双鸭山市| 耒阳市| 喀喇沁旗| 营口市| 揭东县| 闸北区| 玉林市| 会东县| 峨边| 苗栗县| 阿合奇县| 泾源县| 周至县| 资中县| 新化县| 湟源县| 巫溪县| 蒲城县| 吉水县| 霍城县| 始兴县| 崇文区| 新乡县| 巴塘县| 房产| 乳源| 疏勒县| 城市|