WebOS сбрасывает LocalStorage в браузере Закрыть? - PullRequest
2 голосов
/ 07 апреля 2011

У меня есть веб-приложение 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 Ответ

0 голосов
/ 19 апреля 2011

Насколько я знаю, localStorage не поддерживается в WebOS 1.4.x. Кажется, я помню, что видел его в списке как функцию, которая была включена в WebOS 2.0 (или, может быть, 2.1), но я не могу найти какую-либо документацию по этому вопросу, поэтому я мог бы неправильно запомнить.

Если вы храните небольшой объем данных, пользовательские настройки обычно более целесообразно хранятся в файлах cookie в WebOS с использованием Mojo.Model.Cookie .

В своем собственном приложении я использую файлы cookie для пользовательских настроек и сохраняю данные приложения в базе данных базы данных HTML5, а мой класс базы данных с открытым исходным кодом делает доступ к базе данных HTML5 менее обременительным.

...