随着前端系统的越发复杂,前端的性能也受到越来越多的重视。Google也不断在推进新的性能相关指标,从原先的Performance API中的指标逐步演进成用户性能体验相关的指标。
对于用户而言,First Paint、First Meaningful Paint和TTI这几个指标可以直接影响到用户体验。关于前端性能优化有非常多的最佳实践可以参考,这篇文章会重点介绍前端渲染的方案及其优劣。
浏览器(Client)渲染顾名思义就是所有的页面渲染、逻辑处理、页面路由、接口请求均是在浏览器中发生。其实,现代主流的前端框架均是这种渲染方式,这种渲染方式的好处在于实现了前后端架构分离,利于前后端职责分离,并且能够首次渲染迅速有效减少白屏时间。同时,CSR可以通过在打包编译阶段进行预渲染或者骨架屏生成,可以进一步提升首次渲染的用户体验。
但是由于和服务端会有多次交互(获取静态资源、获取数据),同时依赖浏览器进行渲染,在移动设备尤其是低配设备上,首屏时间和完全可交互时间是比较长的。
服务端渲染则是在服务端完成页面的渲染,在服务端完成页面模板、数据填充、页面渲染,然后将完整的HTML内容返回给到浏览器。由于所有的渲染工作都在服务端完成,因此网站的首屏时间和TTI都会表现比较好。
但是,渲染需要在服务端完成,并不能很好进行前后端职责分离,而且白屏时间也会比较长,同时,对于服务端的负载要求也会比较高。
SSR和CSR均有各自的优点和缺点,因此,业界提出前后端渲染同构的方案来整合SSR和CSR。
整个页面的加载和刷新是通过服务端渲染来实现,在渲染生成的HTML中内嵌JavaScript和数据内容。通过这样的实现,可以达到和SSR相同的首屏时间,并且基于Hybration,可以生成前端的虚拟Dom,避免前端触发二次渲染。
SSR和CSR的页面渲染体验对比:
SSR和CSR不同阶段优劣对比:
前端使用SSR进行渲染同构有一个非常明显的缺点:服务资源消耗和运维。通常情况下,同构SSR会采用Node服务,需要固定的服务器资源,并且服务器的运维对于前端同学也提出了很高的要求。
随着Serverless技术的出现,这些问题似乎得到了很好的解决。Serverless基于触发器调用云端部署的函数,然后调用后端服务。
对于前端同学而言,仅仅只需要实现云端函数的实现,对于服务器的运维管理完全不用关心,同时服务器会实现自动弹性伸缩,有效节省了机器资源。
当然,Serverless并不是万能的,服务器的冷启动目前依旧还是一个非常大的问题。
SSR在性能收益上是完胜CSR,配合Serverless,SSR的开发成本仅仅比CSR有略微的提高,因此,从收益成本来看,Serverless SSR已经有了较大的优势,可能会成为未来的趋势。
UC浏览器在新闻feed流页面加载中采用了NSR(Native Side Rendering),首先在列表页中加载离线页面模板,通过Ajax预加载页面数据,通过Native渲染生成Html数据并且缓存在客户端。
NSR本质是分布式SSR,将服务器的渲染工作放在了一个个独立的移动设备中,实现了页面的预加载,同时又不会增加额外的服务器压力。
ESR - Edge Side Rendering,方案的核心思想是,借助边缘计算的能力,将静态内容与动态内容以流式的方式,先后返回给用户。cdn 节点相比于 server,距离用户更近,有着更短的网络延时。在 cdn 节点上,将可缓存的页面静态部分,先快速返回给用户,同时在 cdn 节点上发起动态部分内容请求,并将动态内容在静态部分的响应流后,继续返回给用户。
从上面结果可以看出,在网速越慢的情况下,通过 cdn 流式渲染的最终主要元素出来的时间比原始 SSR 的方式出来得越早。这与实际推论也符合,因为网络越慢,静态资源加载时间越慢,对应的浏览器提前加载静态资源带来的效果也越明显。另外,不管在什么网络情况下,cdn 流式渲染方式的白屏时间要短很多。
CSR、SSR、NSR、ESR,前端渲染方案如此纷繁复杂,其实每一种渲染方案都有其优势和劣势,一定要结合自身的业务需求,平衡好收益和成本选择适合自己的方案。
净水器会产生废水,成为了很多人不选择净水器的理由目前只有反渗透净水器会产生废水,由于反渗透膜的特性,产水时加压让水分子通过RO膜,而水中的杂质与一部分水分子被RO膜隔离在另一侧,被称为浓水,从管道排出后,形成了我们所说的废水我们说的废水,其实指的是RO反渗透净水器在制净水过程中产生的浓水,由于反渗透
2025-03-29 15:26:43
床上吸血虫是一种令人不安的害虫,它们以人类和其他哺乳动物的血液为食。当床上出现吸血虫时,需要采取紧急和有效的措施来消灭它们,同时也需要了解它们可能是如何来到床上的。在下面这篇文章中,我们将探讨床上吸血虫的来源,如何识别感染,以及如何消灭它们,同时也会涵盖宠物传播床上吸血虫的情况。一:床上吸血虫的来源
2025-03-29 15:04:55
这几年用地砖上墙的做法越来越多,地砖当墙砖使用,虽然看起来好看。但是,由于地砖的吸水率很低,传统的水泥砂浆很难将地砖吸在墙上,导致地砖脱落的问题很严重。为了解决地砖上墙脱落的问题,在传统的水泥砂浆的基础上,又新增了瓷砖背胶的做法。瓷砖背胶可以大大降低脱落的问题,但是瓷砖背胶如果没有做对,瓷砖依然会脱
2025-03-29 14:19:33
为什么用毛巾擦玻璃不如用报纸擦干净?毛巾擦玻璃总会留下水渍和绒毛,报纸却能使玻璃光亮如新。这与报纸本身的纸质、印刷的油墨有关。报纸不像卫生纸那么柔软,也不像杂志的纸那么光滑,而是一种相对比较粗硬的质地。这是因为它使用的纸浆含木质素较多,也没有经过防水处理,所以能刮走灰尘污渍,且吸水性较强。卫生纸和
2025-03-29 14:02:55
据人民网 黄花梨,古无此名,古书一般称它“花梨”,也叫“花榈”,后来才被称为“黄花梨”,以区别现在的“新花梨”。《本草纲目》有降香的记载,称其木屑泡水可降血压、血脂,做枕头可舒筋活血。因此,海南黄花梨亦称“降压木”。黄花梨颜色温润,深受明代文人的喜欢,而到了明朝末年,黄花梨就被砍伐殆尽。黄花梨生长周
2025-03-29 13:54:07
大家在使用鼠标的时候是否碰到过鼠标间歇性失灵的情况呢?这有可能是设置的原因,我们关闭允许计算机关闭此设备以节约电源就可以了。今天磐石测控仪就跟大家分享一个方法1、间歇性失灵和失灵是完全两个不同的概念,我们要先排除鼠标本身的问题,更换一个鼠标看是否仍然会间歇性失灵。2、如果还是间歇性失灵的话可能是设置
2025-03-29 13:50:47