nuxt 如何引入js_前端工程师如何选择页面渲染方式

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

大家好!我是/小郑搞码事/的小郑

今天和大家一起聊一下客户端渲染和服务端渲染方式的选择问题。

页面渲染方式就分两种:客户端渲染和服务端渲染,它们各有优缺点,下面我详细讲一讲。

在讲如何实现之前,先搞清楚什么是客户端渲染和服务端渲染,及它们各自的优缺点。这样才能更好的理解选择的意义。

今天不从具体技术实现过程来讲两种方式的区别(这个在后面讲实现时就会一目了然),现只从表象层来看如何认识和区分两种渲染方式。

一、客户端渲染和服务端渲染

1. 服务端渲染

后端先调用数据库(数据接口),获得数据后,将数据和页面元素进行拼装,组合成完整的html页面,再直接返回给浏览器,给用户浏览。

也就是说,从获取数据,和使用数据拼成一个HTML完整结构页面这个过程都是在服务器端完成的。浏览器拿到的是一个完整的页面结构,浏览器收到请求返回的第一时间就可以开始渲染界面。

那么如何来区分一个页面是否是服务端渲染呢?

在页面上,点右键,查看源代码,如果代码body元素里大部分内容都是有的,那基本上就是服务端渲染,如果为空和或者很少就是客户端渲染。如下图所示:

d6af4a31cd45aea381850b633972fe48.png

2. 客户端渲染

服务器给客户端返回的是一个空的HTML页面,也就是说body元素里的内容很少或者为空,所以内容都需要等到JS在浏览器端加载完成之后,再通过JS去拉接口数据拼成能够供浏览器渲染的完整结构。

区分方式一样。

d6938a9ead2cac975644cb2c6d82d529.png

二、如何选择哪种渲染方式

上面说了,页面渲染方式就两种,选择上其实没有标准答案,主要看你的具体使用场景。

从技术上来看,服务器端渲染需要消耗更多的服务器端资源,如CPU/内存等。这也很好理解,因为首屏的数据获取和结构的拼装过程都是在服务器端完成的。自然需要消耗资源。

然而,服务器端渲染给我们带来的好处是,对SEO比较友好(因为搜索引擎不能直接运行JS,只能对得到的HTML进行动态的分析)。再有就是页面的首屏速度比较快且无白屏帧的出现,用户体验比较好,在执行JS比较慢的老机型上优化更明显,当然,速度这一点如果不谈技术实现,和网速也有着直接的影响。

客户端渲染,所有页面数据请求和HTML结构拼装都是在浏览器端完成,客户端渲染方式有个好处是可以将静态资源部署到cdn上,因为数据请求分散在各自客户端,没有集中在服务器上处理,所以可以实现高并发。缺点就是可能首屏速度不是很快,当然,速度上网络好的时候也无所谓,其次对SEO不是很友好。

总结一下:

为了综合考虑页面在各种机型上的访问体验,减少白屏帧的出现,优化SEO,现在业界前端都比较流行使用服务端进行渲染页面,其方式无外呼使用node做中间层,使用框架做同构直出,如react和vue等,当然,也有一些现成支持服务端渲染的框架,如next.js,nuxt.js等。实现上还是比较简单,重点是需要考虑的技术环节更多更重要,后续详述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值