2

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

  1. 使用 Django 模板(仅限服务器端)
  2. 完全转换为 Mustache/Handlebars 等
  3. 使用混合方法:Mustache/Handlebars 以及在适用的情况下使用 Django 模板(最丑的选项?)

尽管转换为像系统这样的 Mustache/Handlebars 为我在客户端和服务器端使用相同模板带来了灵活性,但我确实失去了 Django 模板系统提供的某些优势(例如模板继承)。

我知道有支持和反对客户端模板以及服务器端模板的激烈争论。一些人认为在繁忙的服务器上渲染 HTML 可能会使其变慢,而另一些人则认为在浏览器上从 JSON 渲染 HTML 可能会使客户端变慢。

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

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

谢谢。

4

1 回答 1

3

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

Django 提供的模板继承被高估了——你可以用 Mustache 模板和一点 JavaScript 来完成同样的事情。不要试图构建大型的包罗万象的模板。将您的模板构建为可重复使用的小型构建块,并使用 JavaScript 将它们拼凑在一起,形成构成您的 Web 应用程序的组件。

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

于 2012-12-28T07:28:23.860 回答