我有一个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浏览器?我在设置中找不到任何相关内容。
...谢谢
答案 0 :(得分:0)
据我所知,WebOS 1.4.x不支持localStorage。我想我记得它被列为在WebOS 2.0(或者2.1)中启用的功能,但是我找不到关于这个主题的任何文档,所以我可能会记错了。
假设您存储了少量数据,用户设置通常使用Mojo.Model.Cookie更适当地存储在WebOS中的Cookie中。
在我自己的应用程序中,我使用cookie作为用户首选项,并将应用程序数据存储在HTML5数据库数据库中,使用open-source database class使HTML5数据库访问不那么繁重。