服务端渲染(Server Side Rendering)简称SSR。与客户端渲染不同的是,HTML的生成是在服务端生成,数据也是在服务器组装的,例如传统的PHP,EXPRESSJS等框架都是服务端渲染。
现在流行的服务端渲染SSR
它是传统的服务端渲染和单页应用的一种折中的解决方案:后端渲染出完整的dom结构返回,前端拿到的内容包括:首屏及完整spa结构,应用激活后依然按照spa方式运行,这种页面渲染方式被称为服务端渲染(server side render),它的过程是:
- 客户端发送请求给服务器。
- 服务器读取模板,解析成dom节点,返回一个完整的首屏html结构
- 客户端进行首屏激活(把用户写的交互的代码,在前端激活,重新变成一个spa应用)
- 这样后续,用户再点击超链接、跳转时,不会再向服务器发送请求了,而是使用前端路由跳转,只会发送一些ajax请求数据。
服务端渲染的优缺点
优点
- 有利于SEO,由于页面在服务器生成,搜索引擎直接抓取到最终页面结果。
- 有利于首屏渲染,html渲染所需要的数据都在服务器处理好,直接生成html,首屏渲染时间变短。
缺点
- 占用服务器资源,渲染工作都在服务端渲染。
- 用户体验不好,每次跳转到新页面都需要在重新服务端渲染整个页面,不能只渲染可变区域(可以配合ajax解决)。