2012-03-27 100 views
0

有沒有爲HTML5 Web應用程序實現應用程序範圍內存緩存的方法?如何在HTML5中實現應用程序內存緩存?

是否有HTML5功能具有內存緩存數據?我不是在談論只存儲服務器響應的瀏覽器緩存。我需要緩存更高效的對象。

我能想到的一種可能性是實現一個全局的單例JavaScript對象,該對象將在應用程序的生命週期中創建一次,以便它可以處理緩存和檢索數據。如果這是唯一的方法,那麼如何創建這樣的單例對象呢?

+0

出了什麼問題['localStorage'(https://developer.mozilla.org/en/DOM/Storage#localStorage)? – 2012-03-27 14:37:44

+0

許多HTML5 Web應用程序被設計爲只是一個頁面,隨着應用程序的繼續而更新內容。 – Pointy 2012-03-27 14:38:52

+0

'localStorage'是保存在磁盤上還是內存?對於移動瀏覽器的總數據大小如1 MB是否適用?我無法在Mozilla鏈接中找到這些信息。 – aligf 2012-03-27 14:45:31

回答

5

這是一個非常簡單的單身人士,沒有太多的執法。它可以在真正受保護的方式下完成,Cache構造函數對於外部世界來說不是真正可訪問的,請告訴我是否感興趣。

function Cache() { 
    if ("instance" in arguments.callee) 
     throw "new instance is not desired"; 
    var simpleCache = {}; 

    this.set = function(key, data) { 
     simpleCache[key] = data; 
    }; 

    this.get = function(key) { 
     return simpleCache[key]; 
    }; 
}; 

Object.defineProperty(Cache, "instance", { value: new Cache(), writable: false }); 

現在你罵你會期望:

Cache.instance.set("key1", { a: "field1Value", b:12 }); 
Cache.instance.set("key2", new XMLHttpReuquest()); 
相關問題