WebOS сбрасывает LocalStorage в браузере Закрыть?
У меня есть веб-приложение HTML5, в котором я использую localStorage для сохранения некоторых пользовательских настроек на стороне клиента между использованиями. Я думал, что у меня все работает хорошо, но недавно я обнаружил, что в браузере WebOS элементы localStorage очищаются после того, как браузер полностью закрыт (все карты - не только моя страница). Он действует так, как будто он сохранен в хранилище сеанса, но это не так. Вот минимальный пример, который иллюстрирует мою проблему:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta charset="utf-8" />
<meta name="apple-mobile-web-app-capable" content="yes">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script>
$(function() {
$('#btnV').click(function() {
var x = '';
for(var i = 0; i < localStorage.length; i++) {
x += localStorage.key(i) + ':' + localStorage.getItem(localStorage.key(i)) + '<br/>';
}
$('#lbl').empty().append(x);
});
$('#btnS').click(function() {
localStorage.setItem('test', 'blah');
});
});
</script>
</head>
<body>
<span id="lbl"></span>
<input type="button" id="btnS" value="Save" />
<input type="button" id="btnV" value="View" />
</body>
</html>
Когда я впервые загружаю страницу и нажимаю кнопку "Просмотр", ничего не отображается. Если я нажму "Сохранить", а затем "Просмотр", я увижу элемент как сохраненный. Обновление страницы и немедленное нажатие кнопки "Вид" показывают, что значение сохраняется при перезагрузке страницы. Однако, если я полностью закрою браузер и вернусь на страницу, "Вид" не покажет значений, как это было в первый раз. Я неправильно настраиваю элементы localStorage или мой браузер WebOS как-то настроен для этого? Я не смог найти ничего подходящего в настройках.
Спасибо...
1 ответ
Насколько я знаю, localStorage не поддерживается в WebOS 1.4.x. Мне кажется, я помню, что видел его в списке как функцию, которая была включена в WebOS 2.0 (или, возможно, 2.1), но я не могу найти какую-либо документацию по этому вопросу, поэтому я мог бы запоминать.
Предполагая, что вы храните небольшой объем данных, пользовательские настройки обычно более целесообразно хранятся в файлах cookie в WebOS с использованием Mojo.Model.Cookie.
В моем собственном приложении я использую куки для пользовательских настроек и сохраняю данные приложения в базе данных базы данных HTML5, а мой класс базы данных с открытым исходным кодом делает доступ к базе данных HTML5 менее обременительным.