Локальное хранилище HTML5 не является постоянным - PullRequest
12 голосов
/ 10 ноября 2011

Сайт используется на Samsung Galaxy Tab с ОС Gingerbread.Браузеры, используемые до сих пор - это стандартный браузер, а также Dolphin HD.Элементы в локальном хранилище, по-видимому, случайно исчезают, когда пользователи входят и выходят из зоны действия сети.Хранилище также, похоже, не сможет полностью пережить сбой браузера или перезагрузку устройства.Странная часть заключается в том, что хранилище обычно не очищается полностью, просто пропадает большое количество предметов.Кто-нибудь еще слышал об этой проблеме или есть какие-либо предложения?

Редактировать: Под локальным хранилищем я подразумеваю

localStorage["Key"] = value;

Получено с помощью:

localStorage.getItem("Key");

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

1 Ответ

3 голосов
/ 29 ноября 2011

Как насчет отладки? Может быть, ваш собственный код как-то перезаписывает его? Я использую localStorage / sessionStorage в PhoneGap, и они никогда не исчезали ...

Добавьте следующий обработчик событий:

window.addEventListener("storage", function(e) {
   console.debug(e);
}, false);

Который будет запускаться (и регистрироваться в консоли в браузере рабочего стола) при каждом доступе к хранилищу. Вы также можете зарегистрировать более подробную информацию, чтобы увидеть ее в adb logcat (например, доступ к ключу!)

Посмотрите на этот вопрос о стеке для более подробной информации о событиях хранения.

...