1

jQuery docsの呼び出しによると

pageContainerElement.page({ domCache: true });

特定のページをプログラムでキャッシュします。ただし、このgithub issueで正しく指摘されているように、イベント後に呼び出された場合、これは機能しませんpagecreate

ユーザーは、アプリのメイン ページから、情報を入力できるフォームがある別のページに移動できます。このフォームには、ユーザーが特定のタグを選択できるモーダル ポップアップのボタンがあります。このモーダルが閉じてユーザーがフォームに戻ると、ページが削除されて再度追加されたため、モーダルはリセットされます。

私ができることの 1 つは、フォームを含むページをキャッシュして、データが消去されないようにすることです。これをプログラムで行う唯一の方法は、

function cachePage() { $('#tags').closest('div[data-role=page]').page({ domCache: true }); }
$(document).on('pagebeforecreate', cachePage);

#tags は、キャッシュしたいページ上の要素にすぎないと仮定します。ただし、ページのキャッシュを解除して、jQM でクリーンアップすることはできません。

この問題に正しく取り組んでいるかどうか、もしそうなら、このページのキャッシュと無効化を処理する方法を考えています。正しく処理していない場合、フォームが保持され、モーダル ポップアップまたは追加ページからフォームに情報を取得できるようにするにはどうすればよいですか?

編集

私が最近発見したことの 1 つは、jQM が DOM に 1 つの「ルート」ページを保持し、その後に表面にロードする他のページが続くということです。フォームに移動するすべてのリンクに追加data-ajax='false'すると、フォームで呼び出されるすべてのモーダルで安全に使用できるはずです。さらに、data-ajax='false'タイトル バーの [戻る] ボタンをフォームに戻さずに別のページにリダイレクトするために、それらの送信を同じように行うことができます。

これは、フォーム ページをキャッシュするか、フォーム データを JavaScript に保存して、フォームが読み込まれたときにフォームを再作成するよりも優れた方法ですか?

4

1 に答える 1