客户端vs服务器端vs django后端的混合模板

时间:2012-12-27 18:26:12

标签: javascript django handlebars.js mustache client-side-templating

我想知道是否值得转换为更通用的模板引擎,如胡子或把手,而不是Django模板。我自己看到的选项是:

  1. 继续使用Django模板(仅限服务器端)
  2. 完全转换为Mustache / Handlebars等
  3. 使用混合approcah:Mustache / Handlebars以及适用的Django模板的一些用法(ugliest选项?)
  4. 虽然像系统一样转换到Mustache / Handlebars会让我在客户端和服务器端使用相同模板的灵活性,但我确实失去了Django模板系统提供的某些优势(例如模板继承)。

    我知道对于客户端模板以及服务器端模板,存在强烈的争论。有人认为在繁忙的服务器上渲染HTML会使速度变慢,而其他人认为在浏览器上从JSON渲染HTML会使客户端变慢。

    我也知道为非启用javascript的设备使用服务器端html呈现的论据,但是现在大多数设备都支持javascript。

    从Django模板系统转换到Mustache / Handlebars等是否有真实而明确的原因?

    感谢。

1 个答案:

答案 0 :(得分:3)

你的问题确实没有具体的答案。在我看来,Mustache风格的客户端模板的优势远远超过了支持服务器端模板的优势。小胡子风格的客户端模板是可移植的,可扩展的,易于被其他开发人员理解,并适用于所有浏览器(甚至是IE6)。如果您计划将Web应用程序变大,那么当您的页面生成卸载到用户浏览器而不是在服务器端处理时,您将感谢自己。

Django提供的模板继承被过度使用 - 你可以用Mustache模板和一些JavaScript来完成同样的事情。不要尝试构建大型的全包模板。将模板构建为可重复使用的小构建块,并使用JavaScript将它们组合在一起,以形成构成Web应用程序的组件。

当然,当您在客户端上呈现所有内容时,SEO会受到影响,但这对您的应用程序来说可能是也可能不是问题。