0

現在、jQuery Mobile と KnockoutJS の上に構築されている大規模なモバイル アプリケーションを構築しています。私の最初のアプローチは、Knockout と ajax 呼び出しを介してすべての動的コンテンツとデータをロードするとともに、Single Page Application 設計を多用しました。これは問題なく機能しましたが、jQuery Mobile が DOM にますます読み込まれるため、メンテナンスと開発が非常に複雑になっています。

Knockout と ajax を介してデータをロードしながら、完全に静的な、より伝統的な個々の HTML ページに移行することを考えています。これにより、ブラウザーはアプリの最大の部分である HTML ページをキャッシュできます。

質問:

クライアント側のブラウザー キャッシュを阻害する一意の URL を作成せずに、ページからページへパラメーターを渡すにはどうすればよいでしょうか? ブラウザーにページを積極的にキャッシュしてもらいたい。

あらゆる種類のサーバー側キャッシングを実装できることはわかっていますが、それはここでの私の目標ではありません。/Display/3/Display/5同じページです。ブラウザはこれらを 1 つとしてキャッシュしますか?

ハッシュマークの後にパラメータを渡すことについて疑問がありますか? /Display#3そして/Display#5?グローバル名前空間で JavaScript を介してパラメーターを渡すのはどうですか?

ここで標準的なアプローチを期待しています。

4

2 に答える 2

1

誤解して申し訳ありませんが、あなたのアプローチは間違っていると思います。そのように GET パラメータを使用することはできません。また、JQueryMobile は AJAX の URL 処理で少し混乱します。

通常、AJAX を使用してコンテンツを更新する場合、ページをリロードする必要はありません。ページはすでにそこにあり、一部のコンテンツのみが AJAX 経由でリロードされるため、キャッシュは必要ありません。しかし、JQM の単一ページ アプローチは、そのように動的に作成されたコンテンツには使用できません。すべてのコンテンツを含むページを動的に作成することしかできず、JQM は可視性を切り替えてコンテンツを表示します。次に、# を使用してページを切り替えることができます (サイド ナビゲーションで使用されるように、# はリロードを強制しません)。

(URL GET パラメータを使用する代わりに) ボタンとリンクを呼び出す独自の読み込み関数を作成できます。JQuery の $.ajax メソッドを dataType "html" (デフォルトの json ではなく) で使用することにより、成功ハンドラーでコンテンツの更新を行うことができます。

于 2013-01-25T21:01:08.670 に答える
0

html5 sessionStorage/localStorage を試すことができます。html5 が問題である場合は、プレーンな古い Cookie よりも。明確にするために、複数の HTML ページがある場合、各ページには独自の URL が必要です。

于 2013-01-25T16:24:25.330 に答える