Можно ли выполнять кэширование страниц / DOM на стороне клиента с помощью localStorage? - PullRequest
4 голосов
/ 14 февраля 2011

Я читаю на Локальное хранилище в HTML5 , и я начинаю рассматривать это как версию на стороне клиента, как я использую memcached. Это заставило меня задуматься - я сейчас занимаюсь кэшированием на уровне страниц в memcache.

Это возможно с localStorage? То есть может ли собранная страница хранить себя (или, что более важно, может быть ее части) в localStorage, чтобы клиенту не приходилось так усердно работать с DOM в следующий раз, когда пользователь покажет страницу?

Мне кажется, что, поскольку вещи хранятся только в виде строк, это может не сработать, если не будет доступно преобразование какой-либо строки в объект.

Ответы [ 2 ]

5 голосов
/ 15 февраля 2011

Взгляните на пост Кристиана 2010 года в 24ways под заголовком Кэширование полного интерфейса (ближе к концу). Он в основном делает:

localStorage.setItem('state',f.innerHTML);

Далее:

if('state' in localStorage){
    f.innerHTML = localStorage.getItem('state');
}

Где f - элемент, который он хочет кэшировать.

2 голосов
/ 14 февраля 2011

Проблема в том, что вы не знаете, что находится в кэше, пока не загрузите свою страницу, а это означает, что вам нужно будет выполнить другой HTTP-запрос, чтобы получить данные, которые вы делаете потребность, которая приводит к еще большему количеству накладных расходов. Я бы определенно придерживался серверного кэширования ресурсов.

Вы могли бы сделать это, но что-то вроде этого, в основном, включало бы одну главную страницу индекса Javascript, которая либо загружала кэшированные локальные файлы, либо выполняла Ajax-запросы для загрузки контента с сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...