如何在HTML5中实现应用程序范围的内存缓存

How to implement an app wide in-memory cache in HTML5?

本文关键字:范围 内存 缓存 应用程序 实现 HTML5      更新时间:2023-09-26

有没有一种方法可以为HTML5 web应用程序实现应用程序范围的内存缓存?

有没有HTML5功能可以在内存中缓存数据?我不是说浏览器缓存,它只存储服务器响应。我需要缓存更高效的对象。

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

这里有一个非常简单的单例,没有太多强制执行。它可以用一种真正受保护的方式来完成,在这种情况下,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());