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 で台無しになっていることです。2 回目以降は、すべてが期待どおりに機能します。ある種のブラウザのキャッシュの問題のように思えます。

解決またはデバッグする方法について何か提案はありますか?

4

1 に答える 1

1

この問題に対する標準の Phonegap + jQuery Mobile は、require.jsをリソース プリローダーとして使用することです。基本的には、require.jsを使用して、アプリの初期化中にすべてを読み込みます。

あなたの他の「可能性のある」問題は、ドキュメントの準備ができています。ready 関数が一般的な基本的な jQuery とは異なり、jQuery Mobile では使用しないでください。jQuery Mobile ページの読み込みは、ドキュメントの準備完了状態とは関係ありません。ドキュメントの準備完了状態がトリガーされるとき、jQuery Mobile はまだページを DOM にロード/拡張しているためです。これが問題の原因になる可能性があります。

この問題を解決するために、jQM 開発者は、ページ イベントと呼ばれる別のページ状態のセットを作成しましたが、それらはほとんどありません。詳細については、私の他の記事/回答を参照してください: jQuery Mobile: document ready vs page events

于 2013-04-29T07:31:42.700 に答える