Я хотел бы использовать localStorage
для «кэширования» некоторых файлов JS и CSS в веб-приложении, которое в основном используется на мобильных устройствах (т. Е. Ограничения по пропускной способности). Я думаю, что это будет работать что-то вроде этого:Сохранить все файлы, используя localStorage
- загрузки страницы с небольшой
setup.js
содержащего код, который проверяетlocalStorage
, чтобы увидеть, еслиbigScriptFile.js
были сохранены ранее.- Если информация не хранится,
bigScriptFile.js
загружается и сохраняется для следующего посещения. - Если он был сохранен, то
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, который возвращает содержимое?
Если я правильно понимаю, манифест контролирует только файлы в кэше браузера. Если кеш очищается, файлы необходимо перезагрузить. Поскольку это приложение в первую очередь предназначено для работы на устройствах iOS, где, помимо прочего, открытые страницы в Safari иногда сбрасываются для восстановления памяти, я ищу что-то более постоянное. Я понимаю, что это означает, что мне нужен способ проверить, что версия localStorage устарела (и если да, преднамеренно загрузите и сохраните новую версию), но это не должно быть слишком сложно. Я больше беспокоюсь о том, как надежно хранить весь JS-файл в виде строки – craigpatik 2010-12-06 18:47:12
Нет, файлы в манифестах кеша хранятся для автономного/последующего использования. Вы можете закрыть браузер, и единственный файл, который перезагружается, является файлом манифеста кэша. Я оставляю за собой право, что я не знаю, как это реализовано в Safari для IOS. – 2010-12-06 23:03:11