服务端渲染 VS 客户端渲染
客户端渲染 CSR
从图中可以看出,当用户打开一个链接时,向Web服务器请求对应的资源,请求到之后,解析HTML,下载对应的资源(CSS,JS),所以,最开始获取的HTML一般而言只有一个根节点的容器,其余内容需要解析运行js脚本才能够渲染出来
服务端渲染 SSR
从浏览器角度而言,获得的HTML是完整的。完整的HTML有利于SEO,当使用搜索引擎去搜索一个问题时,搜索引擎会爬取所有相关的内容,对内容进行排序,而爬虫爬取的正是HTML,并且,SPA应用服务器响应的一般是只有根节点的容器,同时里面的内容在完成数据填充之后才有,爬虫才可以爬到。通过SSR响应的HTML是完整的,有利于爬虫的爬取。
SSR应用场景
- SEO需求
- 需要首屏渲染速度快:因为服务端只需返回渲染好的HTML,这部分代码量很小,用户体验更好