学习笔记(十九)服务端渲染基础

2021-01-26  本文已影响0人  彪悍de文艺青年

服务端渲染基础

服务端渲染概述

随着前端技术发展,涌现了许多优秀的基于客户端渲染CSR的前端框架,例如Angular,React,Vue等,这些框架使我们可以方便的构建SPA单页面应用

SPA单页面应用

为了解决SPA单页面应用的这两个缺点,开始借鉴传统的服务端渲染

image-20210125213443643

在传统服务端渲染的基础上,完成首屏渲染,并在客户端激活为SPA应用,即为现代化的服务端渲染

image-20210125213842199

现代化 服务端渲染

现代化的服务端渲染,也叫同构渲染

以这种方式构建的应用通常称为服务端渲染应用,也叫同构应用

什么是渲染?

这里的渲染简单的概括为将模板数据拼接到一起的过程

image-20210125214400024

传统的服务端渲染SSR

早期的动态web应用开发使用传统的服务端渲染SSR (Server Side Render),整体流程如下图

image-20210125213443643

传统服务端渲染的步骤

传统服务端渲染的缺点

在前端页面不是太复杂的情况下,传统的服务端渲染也是完全可以接受的

客户端渲染CSR

客户端渲染CSR (Client Side Render) 是指由客户端向服务端请求要展示的动态数据,并在客户端完成页面模板与数据的拼接,并最终完成页面的展示,目前主流的前端框架应用大多都使用客户端渲染的方式,这种方式也很好的实现了开发过程的前后端分离,整体流程如下图

image-20210125220318877

前后端分离

客户端渲染的缺点

为什么首屏渲染慢?

打开浏览器控制台,选择模拟慢速3G网络,并分别打开首页内容完全相同的客户端渲染页面与服务端渲染页面进行比较

查看客户端渲染页面加载的瀑布流,我们可以发现,客户端渲染页面的首屏渲染,至少需要经过3个http请求周期

image-20210125220843485

而相比较下,服务端渲染的首屏页面只需要经过一个http请求周期,即可以完成渲染展示

image-20210125220806537

通过上述简单页面的比较,可以了解到客户端渲染的SPA应用的首屏渲染通常是要慢于服务端渲染的应用的首屏渲染,这在网络速度慢时尤为明显

除了更多的请求周期,客户端渲染的SPA应用通常需要加载额外的渲染引擎、框架代码等JS文件,只有当这些JS文件加载完成后才能渲染首屏展示,虽然可以通过打包优化的方式,将首屏渲染用到的代码拆分到独立的JS文件中优先加载,但仍会增加网络开销

为什么不利于SEO?

客户端渲染的页面在向服务端请求时,获取的直出页面是一个空页面,仅包含一个用于挂载的根结点,只有当负责渲染的JS文件以及相应的数据请求加载完成之后,才会完成渲染操作,展示出最终页面效果

image-20210125223441300

搜索引擎获取到的HTML字符串内容,无法进行SEO

目前除了google搜索以外,大部分搜索引擎不支持对SPA应用网站的页面内容抓取

现代化的服务端渲染

现代化的服务端渲染也叫同构渲染,结合了传统服务端渲染与客户端渲染各自的优点,使用服务端渲染来完成首屏页面的渲染,以解决首屏加载慢与SEO的问题,在返回客户端之后激活SPA,使后续页面操作获得更好的使用体验

image-20210125213842199

如何实现同构渲染?

通过Nuxt体验同构渲染

以Vue生态的Nuxt.js为例,简单的示例来体验同构渲染的实现方式

image-20210126000304273

同构渲染的问题

同构渲染虽然可以解决首屏加载慢与SEO的问题,但在使用上仍旧存在一定的局限性

开发条件有限

涉及构建和部署的要求更多

image-20210126000911966

更多的服务端负载

服务端渲染使用建议

是否使用服务端渲染,应当考虑以下两个问题

上一篇 下一篇

猜你喜欢

热点阅读