node.js网站/应用程序模板devise

简洁版本:

模板完成服务一个html文件完成,并使用ajax /套接字加载页面特定的数据,节点,我应该期待什么样的性能? devise明智的好还是坏?

长版本

我目前正在学习编写更好的节点的过程。 我很长一段时间的JavaScript粉丝,我目前正在试图找出node.js中的好/坏做法

我正在考虑模板,我正在努力如何分离我正在存储的内容。 我正在阅读很多的MVC文章,我真的很想分离查看逻辑,而没有杂乱的代码。

我的问题是:

比方说,我有一个网站,它包含几个文件代表用户看到的“屏幕”,比方说,在这个基本的例子中,用户应该能够看到: Index, About, Contact, Portfolio

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

由于节点完全基于asynchronous操作 – 只要为所有这些页面提供相同的.html页面,这种方式有多好/多坏,然后根据我使用的AJAX / web页面从服务器载入所有数据套接字?

(天真地,通过名称=“查看”所有部分循环,并通过id或类似的东西获取内容)

这个,我觉得会提供页面的asynchronous加载,并完全从站点的其余部分解耦网站布局。 这感觉非常节点,我没有阻止,一切asynchronous。 我正在寻找经验丰富的开发人员关于这个问题的意见。

此外,任何有关使用node.jsbuild设一个网站的技巧,赞赏。 我来自PHP的背景,我真的想在devise时避免类似于webmatrix的东西。

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

search引擎优化:这个内容将是一个蜘蛛难以索引。 它更适用于封闭的内容,例如用户的电子邮件。

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

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

这个简单的概念是,你有几个布局模板和一些局部。 你会加载这些模板,就好像它们是JS文件(它们在编译时)。 您可以将编译的模板设置为某个地方的全局对象.. App.templates.portfolio = JST [“templates / portfolio”]。 为您的应用程序做一次。 这些模板可以caching在任何地方 – 浏览器的localStorage,反向代理等

当用户点击“投资组合”时,服务器发回JSON,并使用服务器返回的数据在浏览器中编译“投资组合”模板。

https://github.com/sstephenson/eco/是非常好的这个目的。 还有很多其他人同样好,甚至更好。 这都是个人喜好。 玉是我最喜欢的。

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

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