Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 预编译Hogan.js模板服务器端ASP.NET MVC_Asp.net Mvc_Template Engine_Hogan.js - Fatal编程技术网

Asp.net mvc 预编译Hogan.js模板服务器端ASP.NET MVC

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"

我正在通过Twitter查看Hogan.js

他们谈到能够通过服务器预编译模板,我理解这是一个性能增益

目前,每次渲染模板时,我都会在AJAX命中服务器以获取数据后执行以下操作:

     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预编译的模板在浏览器中呈现动态元素

更多信息:

我希望这对你有帮助