繁体   English   中英

node.js网站/ app模板设计

[英]node.js website/app templating design

精简版:

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

长版

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

我正在考虑模板,我正在努力解决如何分离我正在存储的内容。 我正在阅读很多MVC文章,我真的想要在没有杂乱代码的情况下分离视图逻辑。

我的问题是:

假设我有一个网站,它包含几个代表用户看到的“屏幕”的文件,让我们说在这个基本的例子中用户应该可以看到: Index, About, Contact, Portfolio

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

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

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

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

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

这种“单页网站”存在一些陷阱:

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM