javascriptが遅延ロードのいくつかの並べ替えをお探しですか?
通常、特定のリソース名を相対パスで登録するマップが構築されていると思います。たとえば、
これは、必要に応じてキーと実際のパス値の間の相関関係を維持しようとすることでさらに多くのステップを実行できます。 (ボタンクリックなど)あなたのナビゲーションイベントに続い
showPage = function (resource, targetPane) {
if(resourceMap[resource].cachedResponse)
targetPane.innerHTML = resourceMap[resource].cachedResponse;
else {
xhrRequest({
url:resourcemap[resource],
xhrComplete:function (result) {
resourcemap[resource].cachedResponse = result;
targetPane.innerHTML = result;
}
});
}
}
:最後に
、あなたは(擬似コード)のようなものをやっていると思います
のContentElementがあなたのターゲットである
showPage("settings",contentElement);
戻り値のHTMLで塗りつぶすdomElement。
これは、存在しない場合はhtmlページを取得し、以前にフェッチされている場合はクライアントのローカルコピーを使用します。さらに、現代のブラウザ用に書いていると仮定すると、ブラウザのローカルストレージを使用することができます。 resourcemapについての注意点として
:
あなたはリソースを名前空間場合、正しく、あなたは暗黙的にHTMLを取得するために必要なURLを知ることができます。 Dojoのツールキットには、これの良い例があります。同様の方法で名前空間を設定すると、アプリケーションのディレクトリ構造を使用して、オブジェクトの手動更新とは異なり、ロードパスを提供できるため、いくつかの問題を軽減できます。たとえば、/contextroot/homepage/home.htmlにページをロードする場合は、手動で管理されている次のような値ではなく、contextroot.homepage.home.htmlに対してフェッチを呼び出すだけです。
説明したことは、HTMLベースのWebの基本的な運用モデルのように思えます。 – Pointy
シリアル化された「ページ」を「クライアント」から「サーバー」に転送するための「パケット」を取得する方法を誰かが記述することができれば、いいでしょう。 – hspain
どのように?私は実際にブラウザのナビゲーションをしたくない - ちょうどコンテンツを交換したい。 – Steve