Javascript node.js网站/应用程序模板设计

Javascript node.js网站/应用程序模板设计,javascript,html,model-view-controller,node.js,Javascript,Html,Model View Controller,Node.js,短版: 使用ajax/sockets为一个html文件提供服务并加载特定于页面的数据,完全完成了模板化,对于节点,我应该期望什么样的性能?设计智慧是好还是坏 长版本 我目前正在学习编写更好的节点代码。我是javascript的长期粉丝,目前正试图找出node.js中的好/坏做法 我正在考虑模板化,我正在努力解决如何将我呈现的内容与存储的内容区分开来。我读了很多关于MVC的文章,我真的很想在没有凌乱代码的情况下分离视图逻辑 我的问题是: 假设我有一个网站,它包含几个代表用户看到的“屏幕”的文件,比

短版:

使用ajax/sockets为一个html文件提供服务并加载特定于页面的数据,完全完成了模板化,对于节点,我应该期望什么样的性能?设计智慧是好还是坏

长版本

我目前正在学习编写更好的节点代码。我是javascript的长期粉丝,目前正试图找出node.js中的好/坏做法

我正在考虑模板化,我正在努力解决如何将我呈现的内容与存储的内容区分开来。我读了很多关于MVC的文章,我真的很想在没有凌乱代码的情况下分离视图逻辑

我的问题是:

假设我有一个网站,它包含几个代表用户看到的“屏幕”的文件,比如在这个基本示例中,用户应该能够看到:
索引、关于、联系人、公文包

现在我需要动态加载这些页面,这意味着我不想每次都更新这些文件的模板,但它们看起来都非常相似

既然节点完全基于异步操作,那么只为所有节点提供相同的.html页面,然后使用AJAX/WebSockets从服务器加载所有数据会有多好/坏

(天真地,使用name='view'遍历所有部分,并通过id或类似方式获取内容)

我觉得这将提供页面的异步加载,并将站点布局与站点的其余部分完全解耦。这让我感觉非常棒,没有阻塞,一切都是异步的。我正在寻找有经验的开发人员对这个问题的意见


此外,对于使用node.js构建站点的相关提示,我们也非常感谢。我有PHP的背景,我真的希望在设计时避免使用类似webmatrix的东西。

简单的概念是,您有一些布局模板和一些部分。您将加载这些模板,就像它们是JS文件一样(编译时就是这样)。您可以将编译后的模板设置为某个全局对象。。App.templates.portfolio=JST[“模板/组合”]。为您的应用程序执行此操作一次。这些模板可以缓存在任何地方——浏览器的本地存储、反向代理等

当用户单击“公文包”时,您的服务器将发送回JSON,您将使用服务器返回的数据在浏览器中编译“公文包”模板

这是非常好的。还有许多其他方面同样好,甚至更好。这都是个人喜好。玉是我的最爱

大多数MVC框架都包括其中之一


如果您有一个简单的基于页面的站点,那么Node可能不是最佳选择。我相信你已经知道这一点。

这种“单页网站”有几个陷阱:

搜索引擎优化:蜘蛛很难索引这些内容。它更适用于封闭的内容,例如用户的电子邮件

导航:保留用户习惯的浏览器行为是可能的,但您必须明确地考虑它-书签将如何工作?后退按钮怎么样


以传统方式交付页面可能会更好(没有理由不能在后端的节点中呈现模板)。然后优化您的客户端代码和缓存系统,以便快速加载第二个页面—它不需要重新获取.css或.js。

我认为您应该仔细研究一下。它在nodeI上使用了Ember.js(MVC),我见过Railway.js和许多其他MVC框架。我主要是寻找关于节点设计本身而不是现有框架的建议。在使用别人为其编写的库之前,我宁愿自己很好地理解mvc模式。感谢你概述的内容(我知道这是一个类似于gmail的“单页网站”)中的几个陷阱:SEO是最大的一个——对于一个蜘蛛来说,这个内容很难索引。它更适用于封闭的内容,例如用户的电子邮件。同样,保留用户习惯的导航也是可能的,但是你必须明确地考虑它——书签将如何工作?后退按钮怎么样?SEO绝对是一个值得考虑的问题。这种方法非常适用于Web应用程序,但并不适用于内容驱动的网站。使用新的历史api可以保留导航,无论入口点是什么,应用程序都能够加载所需的资源并进行渲染。但我同意,这并不容易,在应用程序的设计/架构过程中必须考虑到所有这些因素。谢谢你的回答,我甚至没有考虑SEO。