我有一个骨干应用程序,由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请求)。
如何加载许多下划线模板?
答案 0 :(得分:1)
您可以考虑使用JST方法,即将模板连接到单个javascript文件中。该模式在this Backbone Patterns tutorial中描述。
我不熟悉Symfony / Twig,所以我不知道是否有任何可用的工具。根据您的问题,我猜您可以轻松地使用现有工具将模板呈现为javascript文件而不是HTML文档。
答案 1 :(得分:1)
我认为更好的方式 - 它是预编译模板,尝试使用jsttojs,它将帮助您获得所有模板的单个文件。
例如,从命令行
jsttojs templates compiled/templates/index.js --ext mustache --watch
或使用grunt的解决方案,grunt-jsttojs