WebOS在浏览器关闭时重置LocalStorage?

时间:2011-04-07 03:26:40

标签: javascript web-applications html5 local-storage webos

我有一个HTML5 webapp,其中我使用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 :(得分:0)

据我所知,WebOS 1.4.x不支持localStorage。我想我记得它被列为在WebOS 2.0(或者2.1)中启用的功能,但是我找不到关于这个主题的任何文档,所以我可能会记错了。

假设您存储了少量数据,用户设置通常使用Mojo.Model.Cookie更适当地存储在WebOS中的Cookie中。

在我自己的应用程序中,我使用cookie作为用户首选项,并将应用程序数据存储在HTML5数据库数据库中,使用open-source database class使HTML5数据库访问不那么繁重。