我正在努力使用Phonegap-Android应用程序。我正在使用jQuery Mobile 1.3.1和jQuery 1.9.1,以及Phonegap 2.9.0。我在index.html中有一些数据角色页面,我用ajax函数动态生成其他一些页面。问题是,在显示动态生成的页面后,屏幕全部变为白色。如果我在index.html中静态创建的页面之间导航,则不会发生这种情况。
有什么建议吗?我试过了:
< meta name =“viewport”content =“width = device-width,user-scalable = no”/>
CSS:.ui-page { -webkit-transform:translateZ(0); -webkit视角:1000; -webkit-backface-visibility:hidden; -msie-backface-visibility:hidden; -ms-backface-visibility:hidden; }
defaultPageTransition =“none”
使用Mustache.js创建新页面。
答案 0 :(得分:0)
快速尝试的方法是在jQuery Mobile中全局启用DOM缓存:
$.mobile.page.prototype.options.domCache = true;
或
pageContainerElement.page({ domCache: true });
我想说它源于一个不包含动态生成标记的给定页面,为了利用jQM的ajax导航你需要它...它使用它自己的内部历史跟踪对象来加速hashchange和/或popstate事件。
除此之外,我将介绍如何将动态页面实际添加到DOM中。您应该能够继续使用Mustache的模板插件,但是您必须确保使用jQM将标记添加到DOM。 (或者经历一个可能很长的创建覆盖的过程...我认为如果可能的话你应该避免。)
当您使用jQM更新DOM时,它会确保正确的事件以正确的顺序触发,从而使应用程序数据/状态保持最新。
我确定你正在使用这些文档,但我会再看一遍。可能会让您更好地了解需要停止使用或扩展/覆盖的Mustache方法。
希望这有帮助。
jQM参考
DOM缓存:http://view.jquerymobile.com/1.3.1/dist/demos/#nav-cache
导航事件:http://view.jquerymobile.com/1.3.1/dist/demos/widgets/navigation/#nav-event-example
动态页面加载:http://jquerymobile.com/demos/1.3.1/docs/pages/page-dynamic.html