在单个文件中加载骨干/下划线模板
Loading templates in a single file for backbone / underscore
我有一个骨干应用程序,它由symfony2服务器提供服务。
我有许多骨干视图,每个视图都有几个模板,这些模板在不同的时间使用underscore的模板引擎渲染。
我正在努力找出如何以最高效率为客户端服务下划线模板。
到目前为止,我已经用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;博士
如何加载多个下划线模板?
您可以考虑JST方法,即将模板连接到单个javascript文件中。该模式将在主干模式教程中进行描述。
我不熟悉Symfony/Twig,所以我不知道是否有任何可用的工具。根据你的问题,我猜很容易使用现有的工具将模板渲染成javascript文件,而不是HTML文档。
我认为更好的方式为你-它的预编译模板,尝试使用jsttojs,它会帮助你得到一个单一的文件与所有的模板。
例如,从命令行jsttojs templates compiled/templates/index.js --ext mustache --watch
或使用grunt的解决方案,grunt-jsttojs
相关文章:
- es6 相当于下划线查找位置
- 用空格替换下划线PHP
- 如何使用下划线js转换这些数据
- 带嵌套json的下划线js查找
- 如何逃离<>在javascript下划线模板中
- TinyMCE从MSWord粘贴的文本在所有文本下加下划线
- 使用lodash下划线基于键拆分jsonarray
- 在控制台中显示下划线变量
- 如何从另一个带下划线的数组中筛选带元素的数组
- 筛选下划线中的对象
- 在键值对中对求和值进行下划线
- 使用下划线将键和值的两个数组合并到一个对象中
- 如何将文件名中的斜线替换为下划线
- 在字符串中插入下划线以代替单个或多个空格(连续)
- 下划线分组依据单个方面与嵌套对象属性的比较
- 下划线模板,将列表添加到单个数组中
- Regex匹配由一个或多个字母或数字包围的所有单个下划线
- 如何在scala代码中用单个空格替换所有连续的下划线
- 使用下划线_.debounce()触发单个事件
- 在单个文件中加载骨干/下划线模板