2012-07-05 68 views
4

短版本:Node.js的网站/应用程序模板设计

模板使用AJAX /插座服务于一个HTML文件,然后加载特定页的数据完全做到,与节点,我应该期待什么样的表现呢?设计方面的好还是坏?

龙版

我目前在学习写更好的代码节点的过程。我是一个很长一段时间的JavaScript粉丝,我目前正试图弄清楚node.js中的好/坏做法

我在考虑模板,我正在努力如何分离我所呈现的内容我正在储存什么。我正在阅读很多MVC文章,并且我真的很想分离查看逻辑而不用乱码。

我的问题是:

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

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

由于节点完全基于异步操作 - 只是为它们提供相同的.html页面会有多好/多坏,然后根据我所在的页面从服务器加载所有数据使用AJAX /网络套接字?

(天真,遍历所有与NAME =“查看”的部分,并获取由ID或类似内容)

这一点,我觉得将提供网页的异步加载,并且完全解耦从网站布局该网站的其余部分。这感觉非常节点,没有阻碍,一切异步。我正在寻找有关该主题的经验丰富的开发人员的意见。

此外,任何与使用node.js构建网站相关的提示,都将受到赞赏。我来自PHP背景,我很想在设计时避免类似于webmatrix的东西。

+0

我想你应该看看[gor.js项目](http://gorjs.org/)。它使用节点 – MilkyWayJoe 2012-07-05 20:18:25

+0

上的Ember.js(MVC)我已经看到了Railway.js和大量其他mvc框架。我主要是在寻找关于节点设计本身的建议,而不是现有的框架。在我使用别人为它写的一个库之前,我宁愿自己理解mvc模式。谢谢 – 2012-07-05 20:19:39

+0

与你概述的几个陷阱(这就是我所知道的“单页网站”)类似gmail:SEO是最大的一个 - 这个内容对于蜘蛛来说很难索引。它更适用于封闭的内容,例如用户的电子邮件。还可以保留导航用户的使用方式,但必须明确地考虑 - 书签如何工作?后退按钮怎么样? – Julian 2012-07-05 20:57:34

回答

2

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

SEO:此内容将是困难的蜘蛛索引。它更适用于封闭的内容,例如用户的电子邮件。

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

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

+0

SEO绝对是值得考虑的事情。这种方法对Web应用程序非常有用,但不适用于内容驱动的站点。无论入口点是什么,导航都可以使用新的历史API保存,应用程序将能够加载所需的资源并进行渲染。但我同意,这并不容易,所有这些都必须在应用程序的设计/体系结构中考虑到。 – SMathew 2012-07-05 21:17:40

+0

感谢您的回答,我甚至没有考虑SEO。 – 2012-07-06 09:33:47

1

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

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

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

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

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