1

HTML5オフライン機能(キャッシュマニフェストなど)を使用するjQuerymobileを使用してアプリケーションを開発しています。

基本的なプログラムは、現場の技術者がインターネットに接続されていないタブレットで注文を表示/変更するためのものです。注文を保存するためにローカルブラウザデータベースを使用しています。

任意の注文を表示できるorders.htmlページがありますが、プログラムがオフラインであり、マニフェストにすべての注文を一覧表示できないため、パラメーターを渡すためにGETパラメーターを使用できません。

したがって、ハッシュパラメータを使用する必要があります-例:orders.html#o4572。しかし、jQuery mobileは、このスキームではうまく機能しません。独自のスキームにハッシュパラメーターを使用します。私がオンになっていlist.htmlて、へのリンクがあるときorders.html#o4572-それはリンクをに変えてlist.html#o4752同じページにとどまります。

設定することでjQuerymobileのリンク処理をオフにすることができます$.mobile.linkBindingEnabled = false;が、これによりすべてのajaxナビゲーションが妨げられます。優れたトランジションが失われ、ポップアップダイアログが「機能しない」ため、手動で行う必要があります。そして、他の問題があるかもしれません。

これを正しく機能させる唯一の方法ですか?jQuery mobileを使い始めたばかりなので、何かが足りないように感じます。

4

2 に答える 2

0

オフラインモードのシングル ページ アプリでjquery-mobile-routerプラグインを使用して同様のことを行いましたが、マルチページ アプリでは JQMの既定の動作 (に設定) であるため、マルチページ アプリでも同じように機能するはずです。 2 番目のページを取得して、現在のページの DOM にアタッチします。ajax-enabledtrue

JQMルーターを使用すると、次のようなことができるはずです

var router;

var orderHandlerRoute = function (eventType, matchObj, ui, page, evt) {
  var params = router.getParams(matchObj[1]);
  //use your params to pull data from localStorage  
};

router =  new $.mobile.Router({
     'orders.html(?:[?/](.*))?' : {handler: "orderHandler", events: 'bs'}
     , {orderHandler: orderHandlerRoute }
   }); 
于 2012-09-20T20:46:51.463 に答える
0

jquery mobile を使用する場合、ページを選択する以外の目的でハッシュ パラメータを使用しないでください。
続行する標準的な方法は、パラメーターを渡して、file.html?parameter=valuejavascript を介して値を取得することです。
次に、オンラインの場合は ajax 呼び出しでデータを取得したり、オフラインの場合はローカル ストレージからデータを読み取ったりできる js 関数を使用して、この値を処理できます。これはchangepage、パラメーターに関連付けられたデータに基づいてページを動的に生成する場合はイベントをバインドするかpageinit、表示後にページを変更する場合はイベントをバインドすることで実行できます (たとえば、フォーム要素に入力するなど)。 )

別の方法として、キャッシュ マニフェストを使用するために ?parameter=value 構文を使用できない場合は、次のアプローチを使用できます。 - ターゲット リンクを次のように記述しますfile.html#pagename_itemvalue 。値、取得、pagenameおよびitemvalue表示するコンテンツを生成/アクセスします。このページでその例を見ることができます

于 2012-09-20T15:47:03.323 に答える