jQuery模板-我应该把它们放在哪里?

jQuery模板-我应该把它们放在哪里?,jquery,jquery-templates,Jquery,Jquery Templates,目前,我有一个单一的html页面,其中有4个模板,并将有更多。是否可以将模板放在不同的文件中并“导入”它们?我可以在.js文件中定义它们吗 我正在使用jQquery模板插件: 我的代码看起来像示例 看看这个堆栈溢出问题,这里有很多例子编辑:可能过时了 此外,这里还有一篇关于使用外部模板文件的最新文章: 如果您不使用.NET,我不知道这是否有帮助。但我也有同样的问题,我写了一些代码来实现这一点: 这件事基本上只是转到一个路径,复制并粘贴所有html文件,并将脚本type=“text/x-jqu

目前,我有一个单一的html页面,其中有4个模板,并将有更多。是否可以将模板放在不同的文件中并“导入”它们?我可以在.js文件中定义它们吗

我正在使用jQquery模板插件:


我的代码看起来像示例

看看这个堆栈溢出问题,这里有很多例子编辑:可能过时了

此外,这里还有一篇关于使用外部模板文件的最新文章:
如果您不使用.NET,我不知道这是否有帮助。但我也有同样的问题,我写了一些代码来实现这一点:

这件事基本上只是转到一个路径,复制并粘贴所有html文件,并将脚本type=“text/x-jquery-tmpl”部分附在上面

如果您需要更加自动化,这里有一些其他代码将模板附加到html/aspx文件的正文中:

我不喜欢外部模板方法,因为需要大量的HTTP请求。理想情况下,我希望它在页面上下载一次,这样我就可以忘记模板了。如果您使用的是Asp.net,则可以将其放入母版页:)

希望有帮助


Chi

我基本上同意这个答案的说法: 你已经在做正确的事情了,因为这个原则

根据最终的模板数量(您提到的“更多”),您可能希望将它们与主页分开。这有几个原因

另一个原因是接吻原则。太多的模板可能会使源代码难以导航。您的编辑器或IDE可能已经介绍了这一点。如果不是,这可能是将模板放在单独文件中的一个很好的理由

另一个原因是性能问题。如果您自己提供HTML文件,而没有模板,那么您的页面将到达客户机并很快开始呈现。您还可以允许客户端缓存一些模板,并仅在模板更改时加载新模板。这将使将来访问您的站点的速度大大加快

如果性能特别重要,你可以考虑这两种方法的混合。您将在主HTML页面中包含基本模板,即组装页面基本结构的模板。然后,可以在页面加载之后和/或在需要之前获取可选模板。要包含基本模板,可以使用服务器端模板

关于你最初的问题,关于把它们放在哪里,我说你应该把它们放在对你有意义的地方。然后,请参阅以获取有关如何构建和获取模板的信息。以下是基本的代码片段:

// Asynchronously our PersonTemplate's content.
$.get('PersonTemplate.htm', function(template) {

  // Use that stringified template with $.tmpl() and 
  //  inject the rendered result into the body.
  $.tmpl(template, person).appendTo('body');
});
然后,请参阅并跳转到标题为“远程模板”的部分。他有一个例子,只获取和编译模板一次,但可以多次渲染。以下是重要的片段:

// Get the remote template
$.get("ProductTemplate.htm", null, function (productTemplate) {

    // Compile and cache the template
    $.template("productTemplate", productTemplate);

    // Render the products
    renderProducts(0);
});

function renderProducts() {
    // Get page of products
    var pageOfProducts = products.slice(pageIndex * 5, pageIndex * 5 + 5);

    // Used cached productTemplate to render products
    $.tmpl("productTemplate", pageOfProducts).appendTo("#productContainer");
}

我认为模板的目的是让您可以将常见内容分离到单独的文件中?您使用的模板引擎是什么,您的代码是什么样子的,到目前为止您尝试了什么?@jmort253更新了帖子以回答您的问题。我不推荐第一个链接,因为问题和答案都是旧的。已经足够老了,不包括jQuery本身提供的最新模板插件,它非常好用。