Как реализовать кэш-память приложения в HTML5? - PullRequest
0 голосов
/ 27 марта 2012

Есть ли способ реализовать кэш-память в приложении для веб-приложения HTML5?

Существует ли функция HTML5 для кэширования данных в памяти?Я не говорю о кеше браузера, который просто хранит ответы сервера.Мне нужно кэширование более эффективных объектов.

Одна возможность, о которой я могу подумать, - это реализовать глобальный одноэлементный объект JavaScript, который будет создан один раз за время существования приложения, чтобы он мог обрабатывать кэширование и извлекать данные.Если это единственный способ, как можно создать такой одноэлементный объект?

1 Ответ

5 голосов
/ 27 марта 2012

Вот действительно простой синглтон без особых усилий. Это можно сделать по-настоящему защищенным способом, когда конструктор 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());
...