3

我正在使用 Jquery 模板来显示传入的 JSON 数据我想将模板加载到可缓存的外部文件中。我该怎么做呢?

更新
http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/
非常接近我最终得到的解决方案,我只是使用了 iframe;

4

5 回答 5

3

这两页似乎很好地给出了答案:

于 2010-11-14T13:24:05.963 回答
2

我对服务器端资源使用ajax调用,在这个例子中是aspx

$.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 回答
2

似乎有几种技术可以实现这一点,每种技术都有其优点/缺点。

1)使用内联脚本块。这将在每个页面加载时带来模板块。如果父页面是不可缓存的,它可能会因多个模板而变得沉重

2) 通过外部 javascript 文件中的全局变量对象访问模板。这是可缓存的,但模板字符串变得难以破译

3) 模板字符串是 JSON 响应的一部分。这就引出了一个问题,为什么不做服务器端模板呢?

4)使用静态 iframe 并在 iframe 加载时编译模板 - 这是可缓存的,模板是可读/可编辑的,如果将静态元素放在另一个域上,同源策略可能会出现问题

我最终选择了 iframe 方法,但我太缺乏经验,无法意识到所有的陷阱。

谢谢

于 2010-11-14T17:04:10.963 回答
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 模板的回答——我应该把它们放在哪里?

除了您在问题中提到的Dave Ward 的文章之外,它还引用了 Stephen Walther 的 An Introduction to jQuery Templates 中的一些额外技巧。特别是,它涵盖了如何获取模板一次并缓存它的编译版本。

于 2011-09-02T17:27:24.897 回答