我有一個HTML5的網絡應用程序,其中我使用localStorage來保留用戶之間的一些客戶端用戶設置。我認爲這樣做一切正常,但我最近發現,在WebOS瀏覽器中,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問題(我沒有掌上設備) – 2011-04-07 03:31:16
這是否發生在模擬器中?在設備上?什麼版本的操作系統?我在仿真器中有幾個不同的設備和操作系統版本,所以稍後我會試着看看它,看看它在哪裏複製。 – 2011-04-07 19:07:31
@GordonWorley @Gordon Worley:是的,它發生在模擬器(1.4.5 SDK)和設備(Palm Pre Plus,也是1.4.5)上。這就是我所要測試的 – glancep 2011-04-13 18:22:07