Постоянное локальное хранилище для Firefox и Chrome?

Ищу советы/варианты по постоянному локальному хранилищу с использованием Firefox и Chrome, позволяющего мне сохранять данные более 50 МБ. Я бы хранил динамические данные ландшафта для игры WebGL, поэтому серверу не нужно было бы отправлять все данные каждый раз, когда игрок подключается. Я мог бы просто обновить старые части.

Я думал об использовании IndexedDB, однако Chrome не позволяет увеличивать квоту (в отличие от Firefox), поэтому я не смогу хранить большие данные. Chrome позволяет вам использовать FileSystem API, который решит мою проблему, однако Firefox его не поддерживает.

Так что, похоже, в любом случае это не сработает. Является ли мой единственный вариант использовать API FileSystem для Chrome и IndexedDB для Firefox? У кого-нибудь есть идеи получше?

Эту информацию я прочитал в блоге Mozilla и сайта разработчиков Google, но он может быть устаревшим, поэтому не стесняйтесь исправь меня. Спасибо!


person Joey Morani    schedule 28.12.2013    source источник
comment
Возможно, другой альтернативой является кэш приложения.   -  person Paul S.    schedule 29.12.2013


Ответы (2)


Я согласен с другими комментариями о кэшировании и торговых площадках Chrome/Firefox, и в конечном итоге они могут оказаться для вас лучшим решением. Однако, чтобы ответить на ваш первоначальный вопрос...

IndexedDB в Chrome определенно не ограничен 5 МБ. Вы можете хранить более 50 МБ в IndexedDB как в Firefox, так и в Chrome, при условии, что у пользователя достаточно места на жестком диске. В этой игре, которую я написал, регулярно достигается больший объем хранилища IndexedDB. На моем компьютере в настоящее время хранится более 500 МБ в IndexedDB в Chrome для этого одного домена.

Вы правильно указали ссылку на https://developers.google.com/chrome/whitepapers/storage и это довольно запутанно, но насколько я понимаю, в основном верхний предел составляет 10% свободного места на жестком диске. Еще одно предостережение, описанное на этой странице, заключается в том, что IndexedDB технически является «временным» хранилищем, которое браузер может удалить, если места не хватает, но на практике это происходит редко (YMMV).

person dumbmatter    schedule 29.12.2013

localStorage ограничен 5 МБ (думаю, это было в Chrome), и вы можете запрашивать больше места для каждых новых 5 МБ через диалоговые окна.

И localStorage, и IndexedDb созданы для интерактивных данных. Поскольку похоже, что данные не изменяются на стороне клиента, ваши варианты

  • Использование кеша приложения (как указано в комментарии)

  • Предоставление данных с помощью кэширования заголовков HTTP навсегда (например, 10 лет), иметь уникальные URL-адреса для новых версий ресурсов и позволять браузеру повторно загружать данные, когда они выходят из кеша (рекомендуется)

  • Разверните свое приложение HTML5 как веб-приложение, которое можно загрузить из Chrome Store и Firefox Marketplace.

person Mikko Ohtamaa    schedule 28.12.2013