我有一个HTML5 webapp,我使用localStorage在两次使用之间保留一些客户端用户设置。我以为一切都很好,但最近我发现在WebOS浏览器中,本地存储项在浏览器完全关闭后被清除(所有卡——不仅仅是我的页面)。它看起来像是被保存到会话存储中,但事实并非如此。下面是一个最简单的例子来说明我的问题:

<!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>

当我第一次加载页面并单击“查看”按钮时,没有显示任何内容。如果我单击“保存”,然后单击“查看”,我将看到项目已保存。刷新页面并单击“查看”将立即显示在重新加载页面时保留的值。但是,如果我完全关闭浏览器,然后返回到页面,“视图”将不会显示任何值,因为它第一次这样做。我是否错误地设置了本地存储项,或者我的WebOS浏览器是否以某种方式进行了配置?我在设置中找不到任何相关的内容。
谢谢。。。

最佳答案

据我所知,WebOS 1.4.x不支持localStorage。我想我记得看到它被列为WebOS 2.0(或2.1)中启用的一个功能,但是我找不到任何关于这个主题的文档,所以我可能会记错。
假设您正在存储少量数据,则通常使用Mojo.Model.Cookie将用户设置更适当地存储在WebOS中的cookies中。
在我自己的应用程序中,我使用cookies作为用户首选项,并将应用程序数据存储在HTML5数据库中,我的open-source database class使HTML5数据库访问变得不那么繁重。

关于javascript - WebOS在浏览器关闭时重置LocalStorage吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5575593/

10-12 15:14