node 中间层

中间层

随着node.js的发展,出现了很多渲染模式。在做web网站开发的时候,最常见的就是客户端渲染和服务端渲染。这篇文章就来谈一谈两个渲染模式的区别。

在说明这两个渲染模式之前,我们首先谈一下什么是中间层。

1.BFF中间层

BFF,即 Backend For Frontend(服务于前端的后端)。

BFF 模式下,整体分工很清晰,后端通过 Java/C++ 等语言负责服务实现,理想情况下给前端提供的是基于领域模型的 RPC 接口,前端则在 BFF 层直接调用服务端 RPC 接口拿到数据

这句话什么意思呢?就是在开发的过程中,我们可以使用node搭建一个服务端,然后去请求后台同学的接口,进行数据的处理(搭建一个中间层,前端访问中间层的接口,中间层再访问后台的 Java/C++ 服务)。然后以前端同学想要的形式返回给前端。这类服务的特点是不需要太强的服务器运算能力,但对程序的灵活性有较高的要求,这样,BFF的可扩展性就非常强大。Node.js非常适合用来做BFF层,优势如下:

  • 对于前端来说:让前端有能力自由组装后台数据,这样可以减少大量的业务沟通成本,加快业务的迭代速度;并且,前端同学能够自主决定与后台的通讯方式。
  • 对于后台和运维来说,好处是:安全性(不会把主服务器暴露在外面)、降低主服务器的复杂度等。

2.客户端渲染和服务端渲染

了解完中间层的概念,我们仔细来谈一谈客户端渲染和服务端渲染。

客户端渲染(CSR / Client side render):前端通过一大堆接口请求数据,然后通过 JS 动态处理和生成页面结构和展示。优点是前后端分离、减小服务器压力、局部刷新。缺点是不利于 SEO(如果你的页面然后通过 Ajax 异步获取内容,抓取工具并不会等待异步完成后再行抓取页面内容)、首屏渲染慢。

服务端渲染(SSR / Server Side Render):服务器返回的不是接口数据,而是一整个页面(或整个楼层)的 HTML 字符串,浏览器直接显示即可。也就是说,在服务器端直接就渲染好了,然后一次性打包返回给前端。优点是有利于 SEO、首屏渲染很快

总结: 搜索引擎优化 + 首屏速度优化 = 服务端渲染

备注:这里的「服务端渲染」只是**让 Node.js 做中间层(当访问路由的时候,可以使用ejs模板直接返回页面)**,不会替代后端的,后台同学请放心

你可能感兴趣的:(前端,javascript,服务器)