2011-07-22 4 views
2

私はiOSアプリケーションを使用しています.jQuery mobileとPhonegapを使用しています。 私はウェブサイトを構築し、PCブラウザでテストするので、htmlファイルにバックエンドコード(Rubyを使用)を入れて、jQueryがページをロードすると($ .mobile.changePage()を使用して)データがサーバから取得され、レンダリングされますテンプレートファイル(サーバー上のすべてのファイル)。これはjQueryモバイルとPhonegapでページコンテンツを読み込むのに適した方法ですか?

私はPhonegapにコードを入れたときに、のindex.htmlファイルがローカルにあります。サーバー側のデータを取得する唯一の方法は、jsonをフェッチしてページに挿入することです?または他の方法でパフォーマンスが向上していますか?

jQueryモバイルは、AJAXリクエストを使用してページを変更するために$ .mobile.changePage()を使用します。したがって、データを取得するようにリクエストすると、ここでは$ .mobile.changePage()それは私のためのデータをロードしていないからです。

答えて

2

リモートコンテンツの読み込みには、Ajaxリクエストが適しています。あなたは、ページが表示されたときにコンテンツをロードしたい場合は、このような何かを:

$(document).delegate('[data-role="page"]', 'pageshow', function() { 
    $.get('http://domain.com/path_to_script.php?id=blah', function (data) { 
     $(this).children('[data-role="content"]').html(data); 
    }); 
}); 

注:この例では、非ローカルスクリプトの準備ができて、出力するHTMLをDOMに挿入することを期待。任意のタイプのデータを受け取り、必要に応じて解析することができます。データ変数はajaxリクエストからの応答を返します。

+0

「this」はjquery mobile **です。**しかし、[ドキュメントで大胆な文字を使用しようとすると面白いです。](http://jquerymobile.com/demos/1.0a4。 1/docs/pages/docs-navmodel.html)これらのアイデアを打ち負かすには、困惑している大衆を...そのような時には、それを手に入れないでください! HA!いいえ、しかし、実際には、これは重要で、混乱しています。あなたの答えは私に "あなたはそれを手に入れます"と言います。あなたが追加できることはもうありますか?私はまだ、 "ページ上"の別の 'div'からのように、完全な'

'フラグメントをサーバーからロードする方法について、混乱しています。 –

+1

@alexgray 'data-role ="ページ要素とその内容を 'body'要素に' .append() 'することができます。次に、 'click'イベントハンドラを使用して' $ .mobile.changePage() '関数を使って新しいページにユーザーを誘導すると、jQuery Mobileフレームワークは初期化され、新しい' data-role = "ページ"素子。ここにjsfiddle demnstrationがあります:http://jsfiddle.net/nbpdy/1/ – Jasper

関連する問題