【问题标题】:Precompile Hogan.js Templating Server Side ASP.NET MVC预编译 Hogan.js 模板化服务器端 ASP.NET MVC
【发布时间】:2013-01-08 10:03:05
【问题描述】:

我正在查看 Twitter 上的 Hogan.js。

http://twitter.github.com/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 为中心?

【问题讨论】:

    标签: asp.net-mvc template-engine hogan.js


    【解决方案1】:

    您有正确的想法来优化您的模板。有两个选项,选择可能取决于您是要在客户端还是服务器端呈现模板。

    如果您想在客户端渲染它们,您可以使用 Hogan.js 进行真正的预编译。是的,这不能在 .NET 上运行,但我认为您误解了何时可以进行预编译。您可以在构建过程中预先编译模板,而不是期望它在每个 Web 请求或页面加载时发生。你需要安装 node 和 npm 来设置它,但你只需要在你自己的机器上本地运行它,或者如果你使用一个构建盒。每当您更新模板时,您都将再次运行 Hogan 来更新输出文件。编译后的输出将是一个 JavaScript 文件,其中包含为以后使用而优化的函数。这些函数包括您的模板字符串,以及将数据呈现为小胡子的逻辑。然后,您可以像任何其他 JavaScript 包含一样包含输出文件,或者如果您这样做,则将其与其他源一起包含以进行缩小。

    第二个选项是在服务器端呈现模板。这与预编译不同,服务器将为每个 Web 请求再次编译和呈现模板。离开 Hogan.js,看看 Nustache 之类的 .NET 替代方案。 Mustache 的伟大之处在于它有一个规范,并且已被移植到多种服务器端语言。

    就渲染发生的位置而言,这些选项存在根本区别。您甚至可能希望在某些情况下利用这两种方法,例如,如果您想使用 Nustache 在服务器端呈现初始页面加载,但必须使用通过 Hogan 预编译的模板在浏览器中呈现动态元素。

    更多信息: Nustache on Github

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多