开发基于jqm和本地存储的移动应用
你可以在这里查看:
clients/app2u/Apps/6/home.html
clients/app2u/Apps/6/gallery.html
clients/app2u/Apps/6/categories.html
等等'
本地存储包含每个页面的数据(例如:“app2u_app6_home”)和常规标签数据(“app2u_app6_Tabs”)
问题是,在第一次访问页面时,页面会在数据完全加载之前加载,并且只有刷新页面时页面才会包含数据。
如何在本地存储准备就绪后强制页面显示?
答案 0 :(得分:0)
注意:我假设您指的是您网站getPageData
中的functions.js
功能。
您的问题是$.post
调用是异步的(与对localStorage.getItem
的调用不同),因此您的getPageData
函数无法立即返回。
相反,你应该重构它以接受回调函数:
function getPageData(page,wait,extra_data,callback) {
if (localStorage.getItem(unique_param+page)) {
callback(localStorage.getItem(unique_param+page, extra_data));
} else {
if (typeof(extra_data) == 'undefined') {extra_data = '';}
$.post(server_path + 'index.php?module=API&pname=' + page + '&pmode=empg&application_id=' + application_id + extra_data,
function(response) {
localStorage.setItem(unique_param+page,JSON.stringify(response));
callback(response);
}
,'json'
);
}
}
使用此方法,您的代码将始终等待 对本地存储的调用或对服务器的调用以完成