一:首先了解一下什么浏览器是如何渲染的
- 用户在浏览器输入网址,浏览器请求服务端得到相应的HTML文件
- 浏览器拿到HTML文件开始从上到下解析生产DOM树和Style树
- 如果遇到JS,会再次请求服务器获取JS文件,执行JS文件,如果JS修改了DOM结构,则会重新生成DOM树
- 当DOM树和Style树生成完成后合成Render树
- 渲染进程开始渲染Render树生成Layout树再进行绘制最后合成帧
- 浏览器通过GPU合成最后的页面
二:前后端未分离浏览器工作流程
- 在前后端未分离的情况下,后端一般返回完整的的HTML+DATA
- 浏览器直接渲染即可
三. CSR客户端渲染
- 用户使用浏览器,浏览器首先请求前端服务器获取纯HTML(Vue/React)
- 浏览器渲染HTML,发现需要获取JS,请求后端服务器接口
- 后端服务器返回数据,浏览器继续渲染
- 这里JS渲染的过程在浏览器完成称之为CSR,客户端渲染。
四.SSR服务端渲染
- 和CSR不同的是,SSR是通过前端服务器完成了所有的JS渲染工作
- 通过前端服务器返回完整的HTML和DATA
- 浏览器只需要渲染成图像即可
- 这种方式即为SSR,服务端渲染