Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在服务器端重用主干应用程序以在服务器端渲染视图_Php_Javascript_Node.js_Backbone.js - Fatal编程技术网

Php 在服务器端重用主干应用程序以在服务器端渲染视图

Php 在服务器端重用主干应用程序以在服务器端渲染视图,php,javascript,node.js,backbone.js,Php,Javascript,Node.js,Backbone.js,我正在开发一个backbone.js应用程序,其中一个视图是一个包含不同类型子视图的复杂提要 我将不得不生成一个静态版本的看法是美元的电子邮件目的。我正在寻找一个最实用的解决方案,它将允许我在不重复的情况下尽可能多地重用现有代码 我提出了两个选择: 使用php静态生成视图。这将使我不得不重复很多逻辑,因为语言不同 设置一个简单的nodejs http服务器,它将重用大部分应用程序逻辑来在服务器端创建视图。这听起来不错,但我仍然不知道这样一个解决方案从长远来看会有多实际。例如,我完全不知道是否能够

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

我将不得不生成一个静态版本的看法是美元的电子邮件目的。我正在寻找一个最实用的解决方案,它将允许我在不重复的情况下尽可能多地重用现有代码

我提出了两个选择:

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

  • 我应该选择两个选项中的哪一个?为什么?或者可能还有第三个呢?

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

    不管怎样,在开发这个应用程序几个月后,我得出结论,重复并不是一个大问题。如果最终结果只有几页,那么避免重复肯定是不值得的。另外,至少在我的例子中,我从服务器发送的静态页面最终没有与backbone.js呈现的模板完全相同的结构,因此它不是100%重复

    不确定这是否有帮助,但无论如何,我建议先复制页面,看看实际需要做多少额外工作。更复杂的解决方案,比如带有nodejs服务器的#2,我觉得这太过分了,除非你真的要用这种方式服务很多页面

    值得一提的是,以下是一些关于SO主题的讨论:


    好吧,如果我能提供我的意见,即使我对nodejs一无所知,但它似乎是目前唯一一个拥有足够社区支持的服务器端JS框架,因此我的建议是使用nodejs并查看它的响应。您如何在客户端呈现视图?您是使用模板引擎(如Mustach)生成HTML字符串,还是使用DOM(直接或通过jQuery)生成页面?如果是后者,那么除非有一个DOM实现可以在node中运行(我不知道),否则客户端呈现代码将无法在服务器上帮助您。如果是前者,至少如果是mustach,那么你可以运行它的服务器端实现。非常实用的建议,我喜欢。有时,为了寻找优雅的设计,我们迷失了通往好设计的道路。