0

我正在努力使用 Phonegap-Android 应用程序。我正在使用带有 Phonegap 2.9.0 的 jQuery Mobile 1.3.1 和 jQuery 1.9.1。我的 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:隐藏;-msie-backface-visibility:隐藏;-ms-backface-visibility:隐藏;}

  • defaultPageTransition = "无"

新页面是使用 Mustache.js 创建的。

4

1 回答 1

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

于 2013-09-10T02:51:21.137 回答