Подтвердить что ты не робот

Память JavaScript и ограничения HTML5 LocalStorage для смартфонов

Я собираюсь разработать веб-приложение, которое должно работать на мобильных устройствах (смартфонах). В приложении оператор вводит некоторые бизнес-данные, и оператор будет вводить эти данные также в закрытых пространствах, где сетевой сигнал может быть недоступен.

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

Я обнаружил два возможных решения:

  • Сохранять значения в памяти JavaScript. Не переживет крах браузера или перезагрузка страницы.
  • Сохраните значения в HTML5 LocalStorage. Требуется браузер с поддержкой HTML5 и гарантировать, что это хранилище будет постоянным (без закрытия браузера).

Поскольку я еще не разработал веб-приложение для смартфонов, и у меня мало опыта с ними, у меня возникает вопрос:

Каковы ограничения JavaScript и ограничения HTML5 LocalStorage для определенных браузеров на определенных смартфонах (Android, Windows Mobile, Windows Phone, iPhone)?

Я знаю, что теоретически HTML5 LocalStorage должен быть 5 МБ, а память JavaScript должна зависеть от ресурсов устройств, которые должны быть не менее 5 МБ, но как это делается для смартфонов? F.G. Я заметил на Windows Phone 6.5, что страница jStorage, используя userData​​strong > для более старого IE, является не сохраняя данные на этом устройстве (возможно, он покраснел после обновления каждой страницы, в течение ограниченных ресурсов).

Обновление В ответе на вопрос о максимальном размере локальных значений хранения есть отличная ссылка на простое приложение, которое проверяет ограничения локального хранилища, и в соответствии с тестом, который я сделал, локальное хранилище может быть увеличено на Opera Mobile 11 без ограничения браузера, пользователь должен просто принять запрос на большее пространство. Ограничения - это ограничения устройства.

Здесь QR-код для приложения:

QR code

И само приложение: http://arty.name/localstorage.html

4b9b3361

Ответ 1

По моему опыту вы можете надежно сделать ставку на минимум 5 МБ для платформ, о которых вы упомянули выше. Держите свои данные ниже этого уровня, и вы должны быть в безопасности.

Прочтите эту статью. http://diveintohtml5.info/storage.html у него есть некоторые интересные самородки информации, но это не все точно, особенно часть, которая говорит, что вы не можете превысить лимит.
Я знаю, что на iPhone, когда вы достигнете предела, телефон попросит пользователя, хотят ли они больше места. (Тип точности, но не полностью)

На платформах Android предел памяти кучи установлен на уровне 12 МБ. Не уверен в других платформах. Поскольку вы собираетесь работать в каком-то веб-контейнере (Webkit или другом), я бы не стал слишком беспокоиться об этом. Контейнеры сами по себе хорошо справляются с управлением памятью и реализацией файловых кэшей, чтобы свести к минимуму их площадь.

Я рекомендую вам оставить оптимизацию памяти и так далее. Кто знает, вам может и не понадобиться. Не оптимизируйте преждевременно.

PS:
Посмотрите на Phonegap: http://phonegap.com/

Ответ 2

просто проверила вашу ссылку: проверить localstorage

  • Chrome 16.0.912
  • iPad2 IOS 5.0.1
  • iPhone 3GS

все до 2.600.000 символов. Поскольку UTF-8 имеет 4 байта, просто умножьте его на четыре, и вы получите общие байты.

10400000 байтов = 9 918 мегабайт

Ответ 3

На моем слабом HTC Wildfire S с Android 2.3.5 ваша страница остановилась на 2,600,000. Я впечатлен тем, что он так высок.

На рабочем столе Firefox 16.0.1 он остановился на уровне 5 200 000, что согласуется с тем, что: квота config определена в.