7
我想在localstorage中緩存JSON數據,以便在沒有Internet連接時加載它。它工作正常,但是當我重新啓動應用程序,我覺得localStorage的清除在電話IOS上重新啓動應用程序後,Localstorage被清除了嗎?
這裏是我的代碼:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("offline", function() {
alert("No internet connection");
$.each(JSON.parse(localStorage.getItem('foo')), function(key, val) {
if(!(val.php)){val.php=0;}
$('ul.get-mertchant').append('<li> <a href="azkadenya.html?id=' + val.nid + '&nop='+ val.php +'" class="li-link"><div class="circle-img"><img src="'+ val.logo + '" /></div><div class="merchant-info"><h1>'+ val.node_title +'</h1><p>You Have '+ val.php +' Binggz</p></div><div class="more-icon"></div></a> </li>');
});
}, false);
$.getJSON('mywebsite/views/services_merchant_mobile', function(data) {
localStorage.setItem('foo', JSON.stringify(data));
var items = [];
$.each(JSON.parse(localStorage.getItem('foo')), function(key, val) {
if(!(val.php)){val.php=0;}
$('ul.get-mertchant').append('<li> <a href="azkadenya.html?id=' + val.nid + '&nop='+ val.php +'" class="li-link"><div class="circle-img"><img src="'+ val.logo + '" /></div><div class="merchant-info"><h1>'+ val.node_title +'</h1><p>You Have '+ val.php +' Binggz</p></div><div class="more-icon"></div></a> </li>');
});
})
}
什麼是錯的?
對第一個鏈接(localstorage_on_ios_5_1上的社區帖子)的後續說明表明該問題已在PhoneGap 1.6中得到解決。 鏈接的cordova_storage文檔不提供localStorage不持久的指示。 「應用程序被拒絕」鏈接是關於將應用程序數據備份到iCloud的(錯誤放置的)問題,而不是應用程序重新啓動時持久存在的問題。 我還有一些關於「localStorage保存在」緩存「位置或」數據位置「和」iOS什麼時候從緩存中刪除東西「的問題,但我沒有看到證據表明localStorage通常在應用程序中丟失重新開始。 – keturn 2014-11-20 23:54:14
使用Cordova 6.1.1時,Android發生同樣的問題。 – andreszs 2016-10-16 13:05:13
https://cordova.apache.org/docs/en/latest/cordova/storage/storage.html 'localStorage'被列爲存儲持久數據的選項。您的來源已過時/已死。是否仍然存在localStorage可能被刪除的情況? – 2017-06-25 17:55:26