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