3

我有一个主干应用程序,由 symfony2 服务器提供服务。

我有许多主干视图,每个视图都有几个模板,这些模板使用下划线的模板引擎在不同时间呈现。

我试图弄清楚如何以最大的效率为客户提供下划线模板。

到目前为止,我已经在 twig 中编写了所有模板,然后在初始请求期间将它们作为内联脚本标签呈现给响应 HTML。这导致用户第一次进入我的应用程序时服务器的响应时间很长。

输出示例:

<html>
<head>
   ...
</head>
<body>
    <script type="text/template" id="template1">
        <div class="example">
            <%= someparam %>
        </div>
    </script>
    <script type="text/template" id="template2">
        <div class="anotherExample">
            <%= otherparam %>
        </div>
    </script>
    ...
    ...
    ...
</body>
</html>

备择方案

现在我正在寻找一种更好的方式来加载这些模板。也许通过将它们放入单个文件中的第二个请求中,例如外部 JS 文件。但是对于我尝试过的任何事情,我发现很难访问单个模板(例如通过 id 引用它们)或将它们全部保存在一个有效的结构中(在一个文件中,并且没有太多的字符串操作或太多的 http要求)。

TL;博士

如何加载许多下划线模板?

4

2 回答 2

1

您可以考虑 JST 方法,即将模板连接到单个 javascript 文件中。该模式在此 Backbone Patterns 教程中进行了描述。

我不熟悉 Symfony/Twig,所以我不知道是否有可用的工具。根据您的问题,我猜想使用现有工具将模板呈现为 javascript 文件而不是 HTML 文档很容易。

于 2012-12-27T12:23:05.560 回答
1

我认为对您来说更好的方法 - 它是预编译模板,尝试使用jsttojs,它将帮助您获得包含所有模板的单个文件。

例如,从命令行

jsttojs templates compiled/templates/index.js --ext mustache --watch

或使用 grunt、grunt-jsttojs 的解决方案

于 2014-01-11T23:00:06.187 回答