我的单页应用程序包含许多data-role =“page”,每个页面加载一个脚本,其中 pageshow 和 pagebeforeshow 被拦截(如下所示)。
在 pageshow 中我填写一个html标记,然后在 pagebeforeshow 中清空它。
> $(document).delegate("#page1", "pageshow",
function (e, data) {
> filling page1Content ...
}
>
> $("#page1").on("pagebeforeshow",
function(e, data) {
> $("#page1Content").empty();
});
Backbutton以这种方式管理:
function onBackKeyDown() {
if($.mobile.activePage.attr('id') == 'page2'){
$.mobile.pageContainer.pagecontainer("change",
"#page1");
}else if ($.mobile.activePage.attr('id') == 'page3') {
$.mobile.pageContainer.pagecontainer("change",
"#page2");
}
...
导航工作正常以及后退按钮但是经过一段时间的冲浪后它会被破坏,丢失一些页面或加载同一页面然后它继续正常工作。
问题:
如何解决我的问题?
我管理活动的方式是否有错误的模式/功能?
页面是否存储在某种堆栈中? (如果是,我该如何检查?)
我正在使用JQM 1.4,Cordova 3.4,Android
答案 0 :(得分:0)
我的解决方案是将我的单页应用程序重构为多页。
在导航过程中,一切都开始超高速工作并没有问题。
我不建议将SPA用于此环境新手。