现代化的服务端渲染

渲染#

什么是渲染,渲染 = 数据和模板添加到一起
对于前端开发者来说最常见的场景就是,向后端请求接口,把请求到的数据通过模板绑定语法,将数据绑定到页面中
最终呈现给用户,那么这个过程中就叫做渲染,渲染的本质其实就是字符串的替换实现方式有很多种
传统的服务端渲染

 

复制代码
服务端渲染原理/流程:

1、客户端发起请求

2、服务端响应请求通过数据库查询页面所需数据

3、服务端得到所需的数据

4、服务端将数据和页面模板渲染为HTML

5、服务端将HTML返还给客户端

6、客户端收到内容直接展示给浏览器了

优点:有利于SEO,有助于搜索引擎优化

缺点:

1、前后端代码完全耦合在一起,不利于开发维护

2、前端没有足够发挥空间

3、服务端压力大

4、用户体验一般
复制代码

 

客户端渲染

 

复制代码
基于上面的缺点,有基于Ajax技术大范围运用,诞生了客户端渲染

服务端只需要处理数据接口接口,这样就实现前后端分离了

后端处理数据接口 / 前端负责将接口数据渲染都页面中,前端更为独立,不再受制与后端

客户端渲染原理:

1、客户端请求一个地址

2、服务端返回空白的HTML页面 / 无实质内容 只有一些js脚本

3、页面拿到返回的内容 加载里面js代码, 如果js代码里面有动态数据

会发起Ajax请求,服务端响应这个请求,去服务器查询数据,然后返回数据

4、客户端拿到数据以后渲染页面

优点:

1、用户体验好

2、开发效率高

3、渲染性能好

4、可维护性好

缺点:

首屏渲染慢:客户端请求一个地址,服务端会响应请求,返回空白的HTML结构

携带js脚本,客户端加载返回的HTML结构,也加载js脚本,根据js脚本

渲染页面,如果js里面有动态内容会发起Ajax请求,综上所述客户端渲染请求次数较多

这样的话就造成首屏渲染慢

不利于SEO:客户端渲染SEO几乎为0,是因为搜索引擎爬取页面的时候无法找到关键字

因为所有的内容都是根据js脚本生成的,所以对搜索引擎不够友好
复制代码

 

同构渲染

 

 

复制代码
同构渲染原理:同构渲染 = 后端渲染(服务器渲染) + 前端渲染

1、客户端请求一个地址

2、查询页面所需数据 也就是请求接口

3、返回数据

4、生成渲染页面及生成客户端SPA脚本,也包括SPA单页面程序运行所包含的脚本

5、然后把HTML(渲染好的页面内容 + SPA脚本)返回

6、客户端拿到HTML内容直接呈现内容给用户,这样就不用发请求了也不用执行渲染了

7、客户端通过页面中js脚本,把当前页面激活微SPA应用,之后的页面交互都是客户端渲染了
以上就是同构渲染的流程 

优点:核心解决SEO和首屏渲染慢的问题,

拥有传统服务端的优点也有客户端渲染的优点

缺点:
1、开发条件有限:浏览器特定的代码只能在某些声明周期钩子函数中使用

2、一些外部扩展可能需要特殊处理才能在服务端渲染中运行

3、不能在服务端渲染期间操作DOM

3、某些代码操作需要区分环境

5、设计构建和部署的要求更多

客户端渲染,仅仅要构建客户端即可,可以部署在任意服务器中

同构渲染需要构建两个端,而且只能部署在Node.Server中

6、更多的服务端负载

在Node中渲染完整的应用程序,相比仅仅提供静态文件的服务器需要占用大量的服务器资源

如果应用在高流量环境中使用,需要准备向相应的服务器负载均衡,需要更多的服务端渲染优化工作处理
复制代码
服务端渲染使用建议
1、首屏渲染速度是否真的重要,有时候用户可能不在意初始的那几秒,可以交给骨架屏处理
2、是否真的需要SEO,如果是公司内部的管理系统那就不需要SEO了

 

posted @   Tipsy(微醺)  阅读(22)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示