Asp.net mvc 预编译Hogan.js模板服务器端ASP.NET MVC
我正在通过Twitter查看Hogan.js 他们谈到能够通过服务器预编译模板,我理解这是一个性能增益 目前,每次渲染模板时,我都会在AJAX命中服务器以获取数据后执行以下操作:Asp.net mvc 预编译Hogan.js模板服务器端ASP.NET MVC,asp.net-mvc,template-engine,hogan.js,Asp.net Mvc,Template Engine,Hogan.js,我正在通过Twitter查看Hogan.js 他们谈到能够通过服务器预编译模板,我理解这是一个性能增益 目前,每次渲染模板时,我都会在AJAX命中服务器以获取数据后执行以下操作: var template = Hogan.compile($('#seasonsTmpl').html()); $('#main').html(template.render(data)); 给定以下模板: <script type="text/html" id="seasonsTmpl"
var template = Hogan.compile($('#seasonsTmpl').html());
$('#main').html(template.render(data));
给定以下模板:
<script type="text/html" id="seasonsTmpl">
<ul>
{{#season}}
<li>{{.}}</li>
{{/season}}
</ul>
</script>
{{{季节}
- {{}}
{{/季节}
如何使用ASP.MVC后端“预编译”服务器端?这是不可能的,因为它似乎围绕着使用
Node.js
?优化模板的想法是正确的。有两个选项,选择可能取决于您是要在客户端还是服务器端呈现模板
如果要在客户端呈现它们,可以使用Hogan.js进行真正的预编译。是的,这不会在.NET上运行,但我认为您误解了什么时候可以进行预编译。您可以预先编译模板作为构建过程的一部分,而不是期望它发生在每个web请求或页面加载上。您将需要安装node和npm来设置它,但您只需要在您自己的计算机上本地运行它,如果您使用构建框,则只需要在构建框中运行它。无论何时更新模板,都会再次运行Hogan来更新输出文件。编译后的输出将是一个JavaScript文件,其中包含为以后使用而优化的函数。这些函数包括模板字符串,以及将数据呈现为la Mustache的逻辑。然后,您可以像任何其他JavaScript包含一样包含输出文件,或者将其与其他源一起包含以进行缩小
第二个选项是在服务器端呈现模板。这与预编译不同,服务器将为每个web请求重新编译和呈现模板。远离Hogan.js,看一看.NET替代品,比如Nustach。Mustache最棒的地方在于它有一个规范,并且已经移植到了几种服务器端语言
就渲染发生的位置而言,这些选项有着根本的区别。您甚至可能希望在某些场景中利用这两种方法,例如,如果您希望使用Nustach呈现初始页面加载服务器端,但必须使用通过Hogan预编译的模板在浏览器中呈现动态元素
更多信息:
我希望这对你有帮助