一个关于node后端开发的问题,求解惑
纯新手,我在看了几个node项目之后,产生一个想法,不知道正确否,想请各位为我解惑. 用cnode社区项目来说吧,cnode渲染一张页面的时候,过程大概是这样的 1-接受请求 2-路由选择,跳转到对应的中间件处理,中间件的过程大致如此
func 1--得到数据a
func 2--在1的回调函数中得到数据b
func 3--在2的回调函数中得到数据c
...
在最后的一个回调函数中把这些数据传递到渲染模块,然后返回给浏览器. 这和我以前开发javaweb的套路很类似.
我感觉这还是一种顺序执行.如果假设所有的数据没有依赖要求,能不能把每个数据都当成单独的连接请求发给浏览器,当浏览器请求页面的时候,直接渲染一张框架,然后在浏览器端来请求这些数据,这样所有的数据都是异步给出去.而不是在服务端整理好一起渲染出来给用户.既然node的优势是高并发,那么这种方案是否能够得到更好一点呢?
6 回复
这样客户端的开销比较大,多出一些http连接。带宽会浪费些。
@JacksonTian 嗯,是的,客户端和服务端都需要更多的http连接
前段优化里就有包括尽可能的合并资源文件以减少http的请求次数来自高页面渲染的效率和稳定性。http请求实在是太耗时且不可控。
你可以考虑bigpipe,以块的形式输出。可以做到在不增加http请求的情况下,达到极速输出。这是node的优势。
@okoala 这个以前还没听说过,感谢
前端用angular渲染页面 后端提供纯RESTful的api ?