【发布时间】:2011-04-20 02:25:24
【问题描述】:
我有一个 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 浏览器是否以某种方式配置为执行此操作?我在设置中找不到任何相关内容。
谢谢...
【问题讨论】:
-
希望我能提供帮助,但您的代码看起来不错,所以我猜这是 WebOS 问题(我没有掌上设备)
-
模拟器会出现这种情况吗?在设备上?什么版本的操作系统?我在模拟器中有几个不同的设备和操作系统版本,所以我稍后会尝试看看它,看看它在哪里复制。
-
@GordonWorley @Gordon Worley :是的,它发生在模拟器(1.4.5 SDK)和设备(Palm Pre Plus,也是 1.4.5)上。这就是我要测试的全部内容
标签: javascript web-applications html local-storage webos