Ограничения HTML5 LocalStorage в сочетании с автономным кешем и памятью JS на смартфонах - PullRequest
1 голос
/ 16 ноября 2011

Я задал вопрос об ограничении памяти JavaScript и HTML5 LocalStorage на смартфонах , однако проблема стала немного более конкретной.

Мне нужно хранить для автономного использования гораздо больше данных, большую часть которых составляют словари. У меня была идея хранить словари в JavaScript (который просто загружает массив данных в переменную JS), который будет кэшироваться для автономного использования. Бизнес-данные для офлайн будут храниться в LocalStorage. Кроме того, память JS будет содержать некоторый кэш для использования в Интернете, чтобы предотвратить загрузку одного и того же объекта более одного раза с сервера.

Итак, у меня есть вопрос, влияет ли использование большого автономного кэша (скажем, 4 МБ) и сохранение большого объема в памяти на доступное для LocalStorage хранилище? Скажем, он может быть ограничен до 3 МБ из-за интенсивного использования автономного кэша. Кто-то имеет опыт работы с такими приложениями и имел дело с проблемами с конкретными браузерами на мобильных устройствах?

Ответ на похожий на мой вопрос Манифест кэша приложения + ограничение размера локального хранилища не предоставляет нужную мне информацию, поскольку, насколько я понял, автор тестировал ограничение автономного кэша и ограничение LocalStorage отдельно.

Еще больше я беспокоюсь о приложениях памяти JS, боюсь, что браузер может быть закрыт даже без предупреждения. Тестирование на одном устройстве не означает, что приложение не будет зависать на другом, менее мощном.

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

обновление Я обновил свой упомянутый вопрос об ограничениях LocalStorage, выполнив тест на Opera Mobile 11, в котором мне удалось сохранить намного больше лимита в 5 МБ.

Кроме того, согласно сообщению Увеличить кэш iPad более 50 МБ? По крайней мере, на iPad можно хранить 50 МБ данных, надеюсь, я скоро проведу тест на iPhone.

Ответы [ 2 ]

2 голосов
/ 16 ноября 2011

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

Лучший способ хранения данных в этом случае - это использовать локальное хранилище или WebSQL для словарных данных, новместо того чтобы хранить все данные, сохраняйте 80% -ое содержимое сценария использования и предоставляйте простой способ загрузки дополнительной информации по мере необходимости.

HTH, PEte

0 голосов
/ 02 декабря 2011

Немного поэкспериментировав, я обнаружил, что Opera не ограничивает ресурсы. Он просит увеличить ограничение LocalStorage, и на это ограничение не влияет хранение файлов в кэше приложения.

Firefox имеет настраиваемое ограничение LocalStorage, поэтому теоретически можно хранить там большое количество данных, также не подверженных влиянию кэша приложения. Тем не менее, Mobile Firefox так плохо написан, как его настольный брат, и он настолько неэффективно управляет ресурсами, что его убивает Android, когда хранилище интенсивно используется. Поэтому я бы не рекомендовал людям использовать Firefox, по крайней мере, на устройствах Android.

С другой стороны, в Android-браузере, по-видимому, установлено ограничение в 2,5 МБ, которое не зависит от кэша приложения, однако оно ниже, чем должно быть, в зависимости от подозрений, что у вас есть как минимум 5 МБ для использования. Однако этот браузер также не в состоянии предоставить точное местоположение GPS (то есть, AFAIK, функция не ошибка - по соображениям безопасности), поэтому для меня этот браузер не вариант поддержки.

...