0

index.html只是拥有很多页面持有者:

<body>
  <div data-role="page" id="homePage"></div>
  <div data-role="page" id="registrationPage"></div>
  <div data-role="page" id="walletPage"></div>
  .. and a lot of page holders
</body>

我的 Javascript 在运行时加载所有页面:

var resources = [{
  id: "#homePage",
  url: "pages/homePage.html"
},
{
  id: "#walletPage",
  url: "pages/walletPage.html"
}] ...
$(document).ready(function() {
  $.mobile.defaultPageTransition = "slide";
  loadResource()
})

一切都封装在 Phonegap 中以提供原生应用程序。现在的问题是我所有的动态页面第一次滑动动画都在 iPhone 上搞砸了。从第二次开始,一切都按预期工作。在我看来,这像是某种浏览器缓存问题。

有什么建议我可以解决或调试它吗?

4

1 回答 1

1

针对这个问题的标准 Phonegap + jQuery Mobile 是使用require.js作为资源预加载器。基本上,您将使用require.js在应用程序初始化期间加载所有内容。

您的另一个“可能”问题是文件准备就绪。与基本的 jQuery 不同,它不应该与 jQuery Mobile 一起使用 ready 函数。jQuery Mobile 页面加载与文档就绪状态无关/绑定。因为当文档就绪状态触发时,jQuery Mobile 仍在将页面加载/增强到 DOM 中。这可能是您的问题的原因。

为了解决这个问题,jQM 开发人员创建了另一组称为页面事件的页面状态,并且它们很少。要了解更多信息,请阅读我的另一篇文章/答案:jQuery Mobile:文档就绪与页面事件

于 2013-04-29T07:31:42.700 回答