Jqueryテンプレートを使用して受信JSONデータを表示しています。テンプレートをキャッシュ可能な外部ファイルにロードしたいと思います。どうすればよいですか?
UPDATE
http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/
最終的に得たソリューションに非常に近く、代わりにiframeを使用しました。
Jqueryテンプレートを使用して受信JSONデータを表示しています。テンプレートをキャッシュ可能な外部ファイルにロードしたいと思います。どうすればよいですか?
UPDATE
http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/
最終的に得たソリューションに非常に近く、代わりにiframeを使用しました。
これらの2ページは、非常にうまく答えを与えているようです。
これを実装するためのいくつかのテクニックがあり、それぞれに長所と短所があります。
1)インラインスクリプトブロックを使用します。これにより、ページが読み込まれるたびにテンプレートブロックが表示されます。親ページがキャッシュできない場合、複数のテンプレートで重くなる可能性があります
2)外部javascriptファイルのグローバル変数オブジェクトを介してテンプレートにアクセスします。これはキャッシュ可能ですが、テンプレート文字列は解読が困難になります
3)テンプレート文字列はJSON応答の一部として提供されます。これは疑問を投げかけます、なぜサーバー側のテンプレートを作成しないのですか?
4)静的iframeを使用し、iframeの読み込み時にテンプレートをコンパイルします-これはキャッシュ可能であり、テンプレートは読み取り/編集可能です。静的要素が別のドメインに配置されている場合、同一生成元ポリシーが問題になる可能性があります
私はついにiframeアプローチを選択しましたが、経験が浅すぎてすべての落とし穴に気付くことができません。
ありがとう
サーバー側のリソース(この例ではaspx)に対してajax呼び出しを使用します
$.ajax({
url: "myprog.aspx",
data: { whichTemplate: "template I'm Looking for" },
success: function(result) {
// result is the text string containing either a single template or a delimated list of templates
$.template('templatename', result);
} ,
dataType: "text"
});
多分このコードは役立つかもしれません:
<script id="entry_show_template" defer type="text/html">
<div class="entry">
Age: <span class="age"></span> <a class="name" href="#"></a>
</div>
</script>
おそらく、このコードをsrc属性でも使用できます。スクリプトにアクセスできるので、次のようになります。
$('#entry_show_template')
jQueryテンプレートについての私の答えを参照してください-どこに置くべきですか?
質問で言及したDaveWardの記事に加えて、 StephenWaltherによるAnIntroduction tojQueryTemplatesのいくつかの追加のトリックを参照しています。特に、テンプレートを一度フェッチして、そのコンパイル済みバージョンをキャッシュする方法について説明します。