如何在HTML5中实现app宽的内存缓存?

ali*_*igf 0 javascript html5 singleton caching global-variables

有没有办法为HTML5 Web应用程序实现应用程序范围的内存缓存?

是否有HTML5功能可以拥有数据的内存缓存?我不是在讨论仅存储服务器响应的浏览器缓存.我需要缓存更有效的对象.

我能想到的一种可能性是实现一个全局单例JavaScript对象,该对象将在应用程序的生命周期内创建一次,以便它可以处理缓存和检索数据.如果这是唯一的方法,那么如何创建这样的单例对象呢?

Pet*_*tai 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 });
Run Code Online (Sandbox Code Playgroud)

现在你按照你的期望打电话:

Cache.instance.set("key1", { a: "field1Value", b:12 });
Cache.instance.set("key2", new XMLHttpReuquest());
Run Code Online (Sandbox Code Playgroud)