首先什么是服务端渲染?
我们先用 node 启动一个 express 服务。
当启动这个服务后,我们打开 localhost:3000 可以看到页面已经显示出来hello world,而且我们可以打开页面的源代码,可以发现页面的源码也可以看到。
这个就是 服务端渲染,其实就是 服务端使用模板引擎返回一堆html字符串,然后让浏览器直接渲染。
服务端只请求一次。
模板引擎最早适用于服务端,后来才发展到了前端。
什么是客户端渲染?
在服务端放了一个html 页面,里面有<script>//发请求,拿数据,模版引擎渲染等,$.ajax ,</script>
客户端发起请求,服务端把页面(响应的是字符串)发送过去,客户端从上到下依次解析,如果在解析的过程中,发现ajax请求,再次像服务器发送新的请求,客户端拿到ajax 响应结果,模板引擎渲染。
过程至少和服务端发起两次请求。
一次是针对页面,一次是针对于接口数据。
·
·
服务端渲染和客户端渲染的区别
- 客户端渲染不利于 SEO 搜索引擎优化
- 服务端渲染是可以被爬虫抓取到的,客户端异步渲染是很难被爬虫抓取到的
- 所以很多网站既不是纯异步也不是纯服务端渲染出来的,而是两者结合来做的
- 例如京东的商品列表就采用的是服务端渲染,目的了为了 SEO 搜索引擎优化
- 而它的商品评论列表为了用户体验,而且也不需要 SEO 优化,所以采用是客户端渲染