屏幕刷新率的种种
本文简单聊聊显示器成像相关的点
组内技术分享canvas的内容时,涉及到了屏幕刷新率的问题,感觉讲的还不是很全面,借此篇文章,好好总结一下。
古人云:耳听为虚,眼见为实。但这一套,显然已经不适用于当代, 因为眼见不一定为实。作为新时代的农民工,每天基本是对着两块显示屏度过的。在我们人眼看来,显示屏的画面就是静止的,但事实,并非如此。我们以为静止的显示器,实际上正以每秒至少60次的频率不断刷新着页面。学过图像的都知道,每秒24张图片的频率展示画面的时候,在人眼看来,就是连续着的动画。
每秒24张图片就是24HZ,当下的主流浏览器的屏幕刷新率都是60或者75hz。即:每秒钟切换了60次或者75次。基本就是16.6ms一帧的速度。在最近发布的iphone13系列的手机中,pro和promax版本最高能达到120hz的屏刷。自己稍微查了一下,公司的27英寸的三星显示器是主流的60hz,一般般。家里的34英寸的带鱼屏,屏刷高了一个档次,100hz。自己手头的那台macbook2019款,屏刷60hz。而自己一直心心念念的外星人显示器,没看错的话,全系列240起步。依稀记得之前某位大佬晒出的外星人显示器,那视觉体验,极度舒适,极度丝滑。
虽然频刷越高,画面越加丝滑,效果越好但是,显示器寿命短。
requestAnimationFrame 安排高优先级的函数在下一个动画帧之前被调用。requestIdleCallback 安排低优先级或非必要的函数在帧结束时的空闲时间被调用。
在react的fiber机制中,requestAnimationFrame 来处理优先级较高的更新,使用 requestIdleCallback 处理优先级较低的更新
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
