requestAnimationFrame-

lxf2023-03-17 18:30:01

requestAnimationFrame--use

是啥

告知电脑浏览器用于实行一个动画,而且再下一次重绘以前启用其指定调用函数取升级动漫,因此此方法的参数就是一个调用函数,再下一次重绘情况下启用。

调用函数

调用函数就是传到的callback,实行后其传到的参数为DOMhighResTimeStamp,表明现阶段调用函数实行时时间格式,企业ms。

启用工作频率

其调用函数实行频次为每秒钟60次,为什么就是这个呢,由于在大部分电脑浏览器种,这一工作频率大多都跟显示屏帧率屏幕刷新率保持一致,即在大刷新的显示屏时会实施的迅速。

回到啥

返回是一个非零整标值,做为唯一标识,发送给window.cancelAnimationFrame(),主要用来消除撤销调用函数。

怎样用

window.requestAnimationFrame(callback);

实例

requestAnimationFrame-

能够看见电脑浏览器在一直打印出,这就是相近动画不断全过程,一秒钟会导出60次。

那么怎样使其终止,除开应用window.cancelAnimationFrame();官方网阐述了为了能提升性能和电池续航,当requestAnimationFrame()运作在平台上标签页或是隐藏iframe里,便会被中止启用以提高性能。

好几个运行状况

当一个网页页面有好几个requestAnimationFrame时,运行状况又是怎么样的呢 requestAnimationFrame-

实行调节导出内容是 requestAnimationFrame-

能够得知再同一ms时时刻刻,2个方式会同步执行,由此可见根本不存在依次的现象,其每一次实行隔断时间格式类似相当于 1000 / 60 = 16.666ms,这便寓意页面加载一次,会一次性实行每一个requestAnimationFrame。

停止执行

cancelAnimationFrame requestAnimationFrame-

动漫应用

requestAnimationFrame-

实际效果如下图所示

requestAnimationFrame-

汇总

requestAnimationFrame是浏览器一个宏任务,它的用法也和setTimeOut非常相似,其实行的流程是依据浏览器制作工作频率的,选用全面的更新间隔,能够确保在绘制的一次全过程上只实行一次,保证了特性,不会有卡屏和卡顿的现象,这个就保证了动漫载入的顺畅,与此同时也降低了cpu的消耗和cpu占用,是canvas动漫中最常用的一种api。