【问题标题】:Using Smarty or Backbone.js for templating javascript使用 Smarty 或 Backbone.js 模板化 javascript
【发布时间】:2012-12-10 12:31:43
【问题描述】:

我已经使用 Smarty 开发 PHP 模板的应用程序 8 个月了。

我对 Smarty 完全没有任何问题,我已经开始为网站上的用户添加更多 JavaScript 交互。

我也在考虑使用backbone.js 来模板化JavaScript。

但是我想到了另一个想法,返回一个 smarty 模板并将其加载到 div 中而不是返回一个 json 并使用backbone.js 来格式化结果会不会是个坏主意? p>

无论如何这会减慢应用程序的速度吗?这样做有什么好处(如果有的话)和坏处?

任何想法都会很棒,

谢谢

【问题讨论】:

  • 也许,也许不是。取决于细节(像往常一样)。
  • 看看jSmart,也许它符合您的需求。 “JavaScript 模板引擎,PHP 模板引擎 Smarty 到 Javascript 的移植,让您可以在服务器端和客户端使用相同的 PHP 和 JavaScript 模板。”
  • 详细说明 muistooshort 的评论。客户端模板(使用 Backbone)对于单页应用程序是必需的,否则是可选的。同样,服务器端模板(Smarty)对于传统的 Web 应用程序是必需的,否则是可选的。在客户端和服务器上都使用模板不会减慢应用程序,但应用程序的可维护性当然会受到影响,因为您正在复制代码......对吗?
  • ^^ 错误,如果您使用的是 MVC 环境。如果您正确解析模板,则可以在两种环境的视图中使用模板。例如,codeigniter 有一个适用于 smarty 和 mustache 模板引擎的插件,因此您可以使用任何一个中的文件,也许在一个名为“templates”的文件夹中。

标签: php templates backbone.js smarty


【解决方案1】:

对于一个普通的多页“网站”,用户可以从一个页面导航到另一个页面来使用该站点的功能。然而,Backbone 最适合单页“Web 应用程序”模型。使用这种方法,加载的唯一 html 页面是第一个;之后,每个“页面转换”实际上都由 Backbone 的路由器处理,它通过 DOM 操作动态地伪造页面转换。每个新页面的元素都是由 Backbone 视图构建的;从不涉及 PHP 生成的 html。

这就是为什么 Backbone 可能不是最适合您的原因。除非您想将 PHP 代码更改为纯粹的服务器端 API 样式结构(实际上不需要 Smarty),否则 Backbone 的大部分价值都会丢失。

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2013-06-25
    • 2012-01-21
    • 2017-05-19
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多