主頁 > 知識(shí)庫 > ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)

ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)

熱門標(biāo)簽:電銷機(jī)器人采購 外呼系統(tǒng)怎么話費(fèi) 高質(zhì)量的電銷外呼系統(tǒng) 硅基電話機(jī)器人加盟 無營業(yè)執(zhí)照地圖標(biāo)注教學(xué) 友邦互聯(lián)電銷機(jī)器人違法嗎 滴滴地圖標(biāo)注上車點(diǎn) 地圖標(biāo)注還可以做嗎 宿州防封外呼系統(tǒng)平臺(tái)
Application對(duì)象內(nèi)置集合有為存放簡單類型設(shè)計(jì)的Contents,默認(rèn)Application("key")就可以使用。

不過Application.Contents不能存放對(duì)象,可以存vbs數(shù)組,但是在javascript下甚至數(shù)組都不能放。

使用Application.Contents時(shí),只能用丑陋的如:

for(var i=0;i15000;i++){
    Application.Lock();
       // Application.Contents(i)="sdfdsffdsaf";
        Application(i)="sdfdsffdsaf";
Application.Unlock();}

在這里往Application.Contents存放了1.5w個(gè)String,共花費(fèi)時(shí)間234ms.

改用Application.StaticObjects后:
 定義一個(gè)Dictionary作為StaticObject,用于存放數(shù)據(jù),因?yàn)镾taticObject是不允許直接訪問的。
  object id="dict" runat="server" scope="Application" progid="Scripting.Dictionary">/object>

 Scripting.Dictionary本身的速度很快,不會(huì)對(duì)比較StaticObjects集合速度造成太大影響.

 Dictionary的速度:
    var d=new ActiveXObject("Scripting.Dictionary");
    for(var i=0;i15000;i++){
        d.Item(i)="sdfdsffdsaf";}
  1.5w次插值,172ms
 當(dāng)然自定義對(duì)象var d=new Object(); d[i]=..更快,1.5w次只要80-90ms,不過功能弱多了,所以還是用字典.

 下面看正式測試
    for(var i=0;i15000;i++){
        Application.Lock();
        Application.StaticObjects("dict").Item(i)="sdfdsffdsaf";
        Application.Unlock();}
 時(shí)間長達(dá)6953ms,初步判斷StaticObjects集合的訪問速度是不能滿足Cache的要求了,這個(gè)速度和ADO OLEDB讀sql server 2000的時(shí)間相差無幾。

 不過還不打算馬上放棄,因?yàn)镾taticObjects的優(yōu)勢在于可以存放Object,而Dictionary也可以存放其它對(duì)象,這樣可以做為緩存對(duì)象,而不僅僅是數(shù)據(jù)。  

我在Application.StaticObjects("dict")里面再放入一個(gè)Object:
  Application.StaticObjects("dict").Item("o")=new Object();

    for(var i=0;i15000;i++){
       Application.Lock();
       Application.StaticObjects("dict").Item("o")[i]="sdfdsffdsaf";
       Application.Unlock();}

  6656ms,快了點(diǎn)點(diǎn).多一層Object并沒有降低速度,那么速度的慢并非結(jié)構(gòu)復(fù)雜,而是StaticObjects的訪問占用。

 把dict的引用預(yù)存
 var t=Application.StaticObjects("dict");

    for(var i=0;i15000;i++){
       Application.Lock();
       t.Item("o")[i]="sdfdsffdsaf";
       Application.Unlock();}

  3094ms,成功的減少一半多點(diǎn)的時(shí)間,js中屢試不爽的預(yù)存策略,要是把t.Item("o")也預(yù)存呢?

 var t=Application.StaticObjects("dict").Item("o");

    for(var i=0;i15000;i++){
       Application.Lock();
       t[i]="sdfdsffdsaf";
       Application.Unlock();}

  125ms,終于成功了,只有Application.Contents的一半??磥頃r(shí)間主要花費(fèi)在取得'引用',而不是StaticObjects內(nèi)存區(qū)被保護(hù)慢。StaticObjects相對(duì)Contents安全措施更好,因?yàn)槔锩嬉鎸?duì)象。

  靠Dictionary強(qiáng)大的功能,適當(dāng)?shù)姆庋b一下,用put(),get(),contains()等等流行方法訪問,就是一個(gè)強(qiáng)大的Cache了。

 ////備注
  我封裝了一個(gè).sct組件;asp javascript寫的,有空發(fā)上來,今天到此。

  測試了取得Contens和StaticObjects引用的速度,在20次時(shí)都是0ms,100次大約5倍速度,500-1500次是10倍速度差距。不過取得后存取不受影響。
您可能感興趣的文章:
  • HTML5 WebStorage(HTML5本地存儲(chǔ)技術(shù))
  • 常見的瀏覽器存儲(chǔ)方式(cookie、localStorage、sessionStorage)
  • vue中使用sessionStorage記住密碼功能
  • 使用sessionStorage解決vuex在頁面刷新后數(shù)據(jù)被清除的問題
  • 使用JS獲取SessionStorage的值
  • 詳解Vue中l(wèi)ocalstorage和sessionstorage的使用
  • jQuery訪問瀏覽器本地存儲(chǔ)cookie、localStorage和sessionStorage的基本用法
  • JS 中LocalStorage和SessionStorage的使用
  • JS中LocalStorage與SessionStorage五種循序漸進(jìn)的使用方法
  • ASP.NET中Application、Cookie、Session、Cache和ViewState
  • ASP.NET中Application和Cache的區(qū)別分析
  • 異步 HttpContext.Current實(shí)現(xiàn)取值的方法(解決異步Application,Session,Cache...等失效的問題)
  • indexedDB bootstrap angularjs之 MVC DOMO (應(yīng)用示例)
  • 5個(gè)HTML5的常用本地存儲(chǔ)方式詳解與介紹

標(biāo)簽:七臺(tái)河 儋州 錫林郭勒盟 新余 江門 宣城 廣元 雅安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)》,本文關(guān)鍵詞  ASP,javascript,Application,對(duì)象,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章