我有一个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/