什么是浏览器端渲染(CSR)?
浏览器端渲染是后端提供数据,前端做视图和交互逻辑。页面初始加载的HTML种无内容,需要下载执行JS文件,由浏览器动态生成页面,并通过JS进行页面交互与状态管理。
什么是服务端渲染(SSR)?
页面内容由服务端渲染生成,并返回HTML给浏览器,浏览器只需解析HTML即可。
为什么会出现SSR?
1.解决SEO
(SEO,搜索引擎优化。简单来说就是要让搜索引擎收录你的网页,并让排名靠前一点) 前端项目需要页面加载完成后再去拉取数据进行渲染,大部分搜索引擎或者爬虫无法读取页面内容,特别是SPA项目,每个路由页面更是难以读取。
2.首屏渲染速度
正常情况下要先加载JS,再通过JS取加载数据。所以难以避免出现首屏白屏。 首屏渲染时间对比:
- SSR:请求发送时间 服务端渲染时间 页面返回时间
- CSR:请求发送时间 页面返回时间 JS加载时间
缺点
- 服务器性能 如果用户规模比较大,SPA本身是一个大型的分布式系统,充分利用用户的设备去运行JS,SSR则是把这些工作包揽到自己到服务器上。所以对需要大量计算且用户量巨大对页面,并不适合。但是SSR特别适合大部分对内容展示页面
- 开发难度增大 虽然现在Vue、React都推出了相应都SSR解决方案,但是项目复杂度增加。
SSR框架:
vue:Nuxt.js React: Next.js