cordova 当我重新启动应用程序时localStorage不工作- phonegap iOS

bhmjp9jg  于 2022-11-15  发布在  iOS
关注(0)|答案(2)|浏览(194)

我尝试在本地存储上缓存JSON数据,以便在没有Internet连接时使用这些数据。
它工作正常,但当我重新启动应用程序时,我认为本地存储已清除。
下面是我的代码:

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>');
});

})
}
ryoqjall

ryoqjall1#

你字符串化的json数据有多大?本地存储对值的大小有限制,所以这可能是一个问题。
xcode控制台中有日志吗?
我看到每次设备准备好的时候你都调用getJSON。如果你想在每次应用程序启动的时候刷新这个数据,也许更好的办法是在全局javascript对象中缓存json调用的结果,而不是多次stringify和parse json。
给你一个小提示。尽量不要这样使用$.append()函数。这是非常昂贵的,尤其是在手机上。你可以连接列表项,然后只调用append()函数一次,或者你可以使用一些模板引擎,如jquery模板或手柄。

xfyts7mz

xfyts7mz2#

从IOS 5.1开始,苹果决定将本地存储作为临时区域。

相关问题