2010-12-06 2 views
5

Я хотел бы использовать localStorage для «кэширования» некоторых файлов JS и CSS в веб-приложении, которое в основном используется на мобильных устройствах (т. Е. Ограничения по пропускной способности). Я думаю, что это будет работать что-то вроде этого:Сохранить все файлы, используя localStorage

  1. загрузки страницы с небольшой setup.js содержащего код, который проверяет localStorage, чтобы увидеть, если bigScriptFile.js были сохранены ранее.
    1. Если информация не хранится, bigScriptFile.js загружается и сохраняется для следующего посещения.
    2. Если он был сохранен, то bigScriptFiles.js считывается из localStorage и загружается/запуска, как если бы он был загружен как обычный файл (т.е. <script src="http://example.com/bigScriptFile.js"></script>)

То, что я не знаю, как do - шаг 1.1 - сохранение JS-файла. (Я знаю, что я могу хранить только строки в localStorage и я знаю, как использовать JSON.stringify().)

Конечно, это не так просто, как с помощью побега():
localStorage.setItem('bigScriptFile', escape('myJScode')) для хранения и
unescape(localStorage.getItem['bigScriptFile']) при получении

Даже если это так просто, как я могу использовать JS для получения содержимого bigScriptFile.js в виде строки? Возможно, путем вызова ajax скрипту PHP, который возвращает содержимое?

ответ

11

Вы должны положить правильные заголовки кеша в файлы js или посмотреть HTML5 cache manifest.

W3C specification.

+0

Если я правильно понимаю, манифест контролирует только файлы в кэше браузера. Если кеш очищается, файлы необходимо перезагрузить. Поскольку это приложение в первую очередь предназначено для работы на устройствах iOS, где, помимо прочего, открытые страницы в Safari иногда сбрасываются для восстановления памяти, я ищу что-то более постоянное. Я понимаю, что это означает, что мне нужен способ проверить, что версия localStorage устарела (и если да, преднамеренно загрузите и сохраните новую версию), но это не должно быть слишком сложно. Я больше беспокоюсь о том, как надежно хранить весь JS-файл в виде строки – craigpatik 2010-12-06 18:47:12

+1

Нет, файлы в манифестах кеша хранятся для автономного/последующего использования. Вы можете закрыть браузер, и единственный файл, который перезагружается, является файлом манифеста кэша. Я оставляю за собой право, что я не знаю, как это реализовано в Safari для IOS. – 2010-12-06 23:03:11

Смежные вопросы