Php 在服务器端重用主干应用程序以在服务器端渲染视图
我正在开发一个backbone.js应用程序,其中一个视图是一个包含不同类型子视图的复杂提要 我将不得不生成一个静态版本的看法是美元的电子邮件目的。我正在寻找一个最实用的解决方案,它将允许我在不重复的情况下尽可能多地重用现有代码 我提出了两个选择:Php 在服务器端重用主干应用程序以在服务器端渲染视图,php,javascript,node.js,backbone.js,Php,Javascript,Node.js,Backbone.js,我正在开发一个backbone.js应用程序,其中一个视图是一个包含不同类型子视图的复杂提要 我将不得不生成一个静态版本的看法是美元的电子邮件目的。我正在寻找一个最实用的解决方案,它将允许我在不重复的情况下尽可能多地重用现有代码 我提出了两个选择: 使用php静态生成视图。这将使我不得不重复很多逻辑,因为语言不同 设置一个简单的nodejs http服务器,它将重用大部分应用程序逻辑来在服务器端创建视图。这听起来不错,但我仍然不知道这样一个解决方案从长远来看会有多实际。例如,我完全不知道是否能够
我应该选择两个选项中的哪一个?为什么?或者可能还有第三个呢?当我开始开发我的第一个backbone.js应用程序时,我对这个问题争论了很久,因为和你一样,我认为复制这么多视图代码是一种浪费。我在rails中工作,我的目标是在服务器上使用相同的格式(haml),在客户机上使用相同的模板(haml/ruby),但事实证明这是不可能的,而且无论如何也不太可取 不管怎样,在开发这个应用程序几个月后,我得出结论,重复并不是一个大问题。如果最终结果只有几页,那么避免重复肯定是不值得的。另外,至少在我的例子中,我从服务器发送的静态页面最终没有与backbone.js呈现的模板完全相同的结构,因此它不是100%重复 不确定这是否有帮助,但无论如何,我建议先复制页面,看看实际需要做多少额外工作。更复杂的解决方案,比如带有nodejs服务器的#2,我觉得这太过分了,除非你真的要用这种方式服务很多页面 值得一提的是,以下是一些关于SO主题的讨论:
好吧,如果我能提供我的意见,即使我对nodejs一无所知,但它似乎是目前唯一一个拥有足够社区支持的服务器端JS框架,因此我的建议是使用nodejs并查看它的响应。您如何在客户端呈现视图?您是使用模板引擎(如Mustach)生成HTML字符串,还是使用DOM(直接或通过jQuery)生成页面?如果是后者,那么除非有一个DOM实现可以在node中运行(我不知道),否则客户端呈现代码将无法在服务器上帮助您。如果是前者,至少如果是mustach,那么你可以运行它的服务器端实现。非常实用的建议,我喜欢。有时,为了寻找优雅的设计,我们迷失了通往好设计的道路。