关于项目node server层的思考和笔记

本文探讨了服务端渲染(SSR)的概念,解释了其如何通过服务器生成HTML来改善SEO和首屏加载速度。同时,介绍了基于Node.js的服务器作为中间层代理的解决方案,描述了它如何协调前端与后端,解决跨域和SSO问题,优化用户体验。此外,还讨论了这种模式下前后端的职责划分,以及它如何解决SEO和首屏渲染问题。
摘要由CSDN通过智能技术生成

最近单页面和多页面的都做过,可是做完后有人给我提出一个概念我感觉自己答不出来,心里有点明白,但是又不深刻,正巧读了一篇文章(关于服务端渲染)的问题,所以这里想记录下,以便日后回顾。

一、 什么是服务端渲染

简单理解是每次打开页面都通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。如何判断是服务端渲染还是前端渲染,打开一个页面 “加载源代码”,下面第一张图所示是后端传入的完整的html代码,所以是服务端渲染;再看第二张图,后端只是传来一个空的body,至于展示是有前端通过js加载路由对应的模块实现的动态渲染的,这个就是常见的spa页面,像一般简单的内部管理系统,这样的系统不需要前后端分离,否则只会白白增加工作量。
在这里插入图片描述在这里插入图片描述
二、node server
这里不谈spa的优缺点,前面记录过,这里想着重了解下服务端渲染。总体来说,为解决seo优化问题、首屏渲染很慢的问题,考虑使用服务端渲染(SSR)
前后端分离的方案已经很常见,即后端只专注于提供接口,前端全权负责页面的展示。
在这里插入图片描述
比较常见的前后端分离解决方案有两种:

  • 一种是将前端的html, js, css等文件直接部署在静态资源服务器上。当用户请求页面时,首先会加载静态html文件,之后通过js异步请求后端数据接口进行二次渲染。

  • 另一种是通过Node服务器来作为中间层代理,通过服务端渲染动态渲染页面。
    相对来说,第一种方案实施起来更为容易,但不足之处也十分明显,诸如:不利于SEO、首屏加载白屏等。所以我们更倾向于采取基于Node.js的开发模式,其实公司的serverless还不是纯粹的serverless概念,更准确的说,他是node server的概念,如下图
    在这里插入图片描述
    在这种模式下,前后端的权责区分更加清晰:

  • 用户的http请求会首先发送给前端的Node服务器,由于页面与Ajax接口在同域下因此跨域和SSO问题可以得到解决。

  • Node服务器在获得请求后,作为代理通过内网将请求分发(毫秒级)给后端Java服务器,Java服务器在读取数据和处理业务逻辑后,响应Node服务器的请求。

  • Node服务器在获得响应后,在服务端动态渲染页面并返回给客户端,解决了SEO和前后端分离的问题。

  • 客户端获得响应,展示页面或者JS脚本执行下一步操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值