4

精简版:

模板完全通过提供一个 html 文件并使用 ajax/sockets 加载特定于页面的数据以及节点来完成,我应该期望什么样的性能?设计方面的好坏?

长版

我目前正在学习编写更好的节点。我是 javascript 的忠实粉丝,我目前正在尝试找出 node.js 中的好/坏做法

我正在考虑模板,我正在努力将我呈现的内容与我存储的内容分开。我正在阅读很多 MVC 文章,我真的很想将视图逻辑分开,而不会出现杂乱的代码。

我的问题是:

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

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

由于节点完全基于异步操作 - 为所有这些操作提供相同的 .html 页面,然后根据我正在使用 AJAX / web 的页面从服务器加载所有数据会有多好/坏插座?

(天真地,遍历所有具有 name='view' 的部分并通过 id 或类似的东西获取内容)

我觉得这将提供页面的异步加载,并将站点布局与站点的其余部分完全分离。这对我来说感觉非常节点,没有阻塞,一切都是异步的。我正在寻找经验丰富的开发人员关于该主题的意见。

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

4

2 回答 2

2

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

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

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

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

于 2012-07-05T21:01:24.287 回答
1

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

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

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

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

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

于 2012-07-05T20:51:24.843 回答