2

我正在开发一个backbone.js 应用程序,其中我的一个视图是具有不同类型子视图的复杂提要。

我将不得不生成该视图的静态版本以用于电子邮件目的。我正在寻找最实用的解决方案,让我可以从现有代码中尽可能多地重用而不重复

我想出了两个选择:

  1. 使用 php 静态生成视图。由于语言不同,这将使我不得不重复很多逻辑。
  2. 设置一个简单的 nodejs http 服务器,它将重用大部分应用程序逻辑来在服务器端创建一个视图。这听起来不错,但我仍然不知道这种解决方案从长远来看会有多实用。对于 ecample,我完全不知道我是否能够在服务器端使用 Jquery 从现有的 html 文件创建布局。

我应该选择两种选择中的哪一种,为什么?或者也许还有第三个?

4

1 回答 1

2

当我开始开发我的第一个backbone.js 应用程序时,我就这个确切的问题争论了很长时间,因为和你一样,我认为复制这么多视图代码是一种浪费。我在 Rails 中工作,我的目标是对服务器上的部分(haml/ruby)和客户端上的模板(haml/coffeescript)使用相同的格式(haml),但事实证明这是不可能的,无论如何也不是很可取的。

无论如何,在该应用程序上工作了几个月后,我得出的结论是重复不是一个主要问题。如果最终结果只有几页,那么避免重复肯定是不值得的。此外,至少在我的情况下,我从服务器发送的静态页面最终并没有与backbone.js 呈现的模板具有完全相同的结构,所以它不是100% 的重复。

不确定这是否有帮助,但无论如何我建议先复制页面,看看实际涉及多少额外的工作。更复杂的解决方案,如使用 nodejs 服务器的#2 让我觉得有点矫枉过正,除非你真的会以这种方式提供大量页面。

对于它的价值,这里有一些关于 SO 主题的讨论:

Rails 客户端/服务器端渲染使用单个模板(车把或 Mustache)和 Sammy.js

适用于服务器和客户端的模板语言

于 2012-08-04T23:25:32.617 回答