3

Jqueryテンプレートを使用して受信JSONデータを表示しています。テンプレートをキャッシュ可能な外部ファイルにロードしたいと思います。どうすればよいですか?

UPDATE
http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/
最終的に得たソリューションに非常に近く、代わりにiframeを使用しました。

4

5 に答える 5

3

これらの2ページは、非常にうまく答えを与えているようです。

于 2010-11-14T13:24:05.963 に答える
2

これを実装するためのいくつかのテクニックがあり、それぞれに長所と短所があります。

1)インラインスクリプトブロックを使用します。これにより、ページが読み込まれるたびにテンプレートブロックが表示されます。親ページがキャッシュできない場合、複数のテンプレートで重くなる可能性があります

2)外部javascriptファイルのグローバル変数オブジェクトを介してテンプレートにアクセスします。これはキャッシュ可能ですが、テンプレート文字列は解読が困難になります

3)テンプレート文字列はJSON応答の一部として提供されます。これは疑問を投げかけます、なぜサーバー側のテンプレートを作成しないのですか?

4)静的iframeを使用し、iframeの読み込み時にテンプレートをコンパイルします-これはキャッシュ可能であり、テンプレートは読み取り/編集可能です。静的要素が別のドメインに配置されている場合、同一生成元ポリシーが問題になる可能性があります

私はついにiframeアプローチを選択しましたが、経験が浅すぎてすべての落とし穴に気付くことができません。

ありがとう

于 2010-11-14T17:04:10.963 に答える
2

サーバー側のリソース(この例では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"
}); 
于 2011-01-07T19:51:35.603 に答える
1

多分このコードは役立つかもしれません:

<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') 
于 2010-11-14T16:48:09.263 に答える
0

jQueryテンプレートについての私の答えを参照してください-どこに置くべきですか?

質問で言及したDaveWardの記事に加えて、 StephenWaltherによるAnIntroduction tojQueryTemplatesのいくつかの追加のトリックを参照しています。特に、テンプレートを一度フェッチして、そのコンパイル済みバージョンをキャッシュする方法について説明します。

于 2011-09-02T17:27:24.897 に答える