当前位置: 首页 > news >正文

河北省建设执业资格中心网站深圳通公司网站

河北省建设执业资格中心网站,深圳通公司网站,女装关键词排名,建筑模板多少钱一块什么是requestIdleCallback? 我们都知道React 16实现了新的调度策略(Fiber), 新的调度策略提到的异步、可中断#xff0c;其实就是基于浏览器的 requestIdleCallback和requestAnimationFrame两个API。 在 JavaScript 中#xff0c;requestIdleCallback 是一个用于执行回调函…什么是requestIdleCallback? 我们都知道React 16实现了新的调度策略(Fiber), 新的调度策略提到的异步、可中断其实就是基于浏览器的 requestIdleCallback和requestAnimationFrame两个API。 在 JavaScript 中requestIdleCallback 是一个用于执行回调函数的 API该回调函数会在浏览器空闲时执行而不会影响页面的性能和用户体验。它的作用是在浏览器的空闲时段执行任务以确保这些任务不会阻塞主线程从而提高页面的响应性。 具体来说requestIdleCallback 可以用于执行一些不那么紧急的任务比如 执行复杂的计算 如果有一些需要较长时间才能完成的计算任务可以使用 requestIdleCallback 将其放在空闲时执行而不会阻塞用户与页面的交互。 后台数据同步 可以在空闲时检查是否有需要同步的数据并进行相应的后台同步操作。 图片懒加载 对于页面上一些不太重要的图片可以在空闲时加载而不影响首屏渲染。 下面是一个简单的示例 // 在空闲时执行任务 requestIdleCallback(function (deadline) {while (deadline.timeRemaining() 0) {// 执行一些任务// ...} });deadline 是一个对象用于提供当前帧的一些信息而 deadline.timeRemaining() 是一个函数用于获取当前帧还剩余的时间。 具体来说deadline.timeRemaining() 返回一个表示当前帧剩余时间的毫秒数。在回调函数执行期间可以多次调用这个函数以检查当前帧是否还有足够的时间来执行任务。 requestIdleCallback 的第二个参数是一个 options 对象用于配置回调函数的行为。这个对象有以下属性 timeout (可选): 用于指定回调函数执行的最大时间。如果在指定的时间内回调函数没有完成它仍然会在空闲时执行但是会提前终止。这可以用来确保回调函数在有限的时间内完成以避免长时间运行的任务影响用户体验。这个值是一个毫秒数。 requestIdleCallback(function (deadline) {// 执行任务},{ timeout: 1000 } // 设置最大执行时间为 1000 毫秒 );signal (可选): 这是一个 AbortSignal 对象可以用来取消回调函数的执行。当传递了这个参数时如果 AbortSignal 被触发回调函数会被取消。 const controller new AbortController(); const signal controller.signal;// 启动回调函数 requestIdleCallback(function (deadline) {// 执行任务},{ signal } );// 在需要的时候取消 controller.abort();这两个参数提供了对回调函数执行的一些控制和限制。在实际使用时可以根据任务的性质和需求进行配置。 需要注意的是requestIdleCallback 并不是所有浏览器都支持的标准 API可能需要进行兼容性处理。另外由于浏览器对空闲时段的定义可能不同因此在实际使用时应该根据具体情况进行测试和调整。最新的浏览器也提供了 requestAnimationFrame 和 requestAnimationFrame 方法来执行类似的任务。 requestAnimationFrame和requestIdleCallback是宏任务还是微任务 大家都知道异步任务分为宏任务和微任务要搞清楚 requestAnimationFrame 和 requestIdleCallback 是宏任务还是微任务就必须要搞清楚下面几个问题 浏览器在每一轮Event Loop事件循环中都会去渲染屏幕吗requestAnimationFrame在哪个阶段执行是在渲染前还是渲染后是在微任务执行前还是执行后requestIdleCallback在哪个阶段执行是在渲染前还是渲染后是在微任务执行前还是执行后 console.log(22) requestIdleCallback((){console.log(11) })console.log(33) requestAnimationFrame((){console.log(动画) })requestAnimationFrame和requestIdleCallback是和宏任务性质一样的任务只是他们的执行时机不同而已。也有人说它们既不是宏任务也不是微任务其实我们不必纠结这个我们所要做的就是知道他们的执行时机就好。 浏览器在每一轮Event Loop事件循环中不一定会去重新渲染屏幕会根据浏览器刷新率以及页面性能或是否后台运行等因素判断的浏览器的每一帧是比较固定的会尽量保持60Hz的刷新率运行每一帧中间可能会进行多轮事件循环。 requestAnimationFrame回调的执行与task和microtask无关而是与浏览器是否渲染相关联的。它是在浏览器渲染前在微任务执行后执行。requestIdleCallback是在浏览器渲染后有空闲时间时执行如果requestIdleCallback设置了第二个参数timeout则会在超时后的下一帧强制执行。
http://www.pierceye.com/news/312766/

相关文章:

  • html5博客网站模板泉州市住房与城乡建设网站
  • 没网站怎么做app创意设计图片
  • 重庆涪陵网站设计公司推荐外贸优化网站制作
  • 网页怎么制作四页石家庄seo排名外包
  • 高校信息化建设 网站东阳网络科技有限公司
  • 网站 如何做 中英文切换网站怎么提升关键词排名
  • 企业只有建立自己的网站平台金坛建设局网站
  • 网站建设及维护费用网站开发质量控制计划书
  • dede免费网站模板内蒙古住房与建设官方网站
  • 网络设计开发网站电子商务网站建设财务分析
  • 牛商做网站的理念国外便宜域名注册商
  • 深圳网站制作880网页设计与制作教程 个人简历代码
  • 皇岗网站建设济南市住房和城乡建设局
  • 产品创新设计方案seo 网站案例
  • 做名片最好的网站上海网站开发制作公司
  • 网站如何做三端适配wordpress get_the_author_meta
  • 个人介绍微电影网站模板网站制作策划
  • 怎么在网上注册自己的网站网站框架建设
  • 哪个网站做自媒体比较好广西模板十大名牌排名榜
  • 苏州手机网站制作建设视频网站费用
  • 301的网站用什么来做为企业为什么做网站
  • wordpress怎安装关键词优化排名易下拉排名
  • 怎么做网站评估android安卓软件下载
  • 网站建设设计培训班南昌广告公司
  • 网站问责建设书企业网站建设 百度文库
  • 佛山网站建设seo优化建设电子商务系统网站
  • 网站建设功能分为几种购物网站的后台做哪些东西
  • 2017网站建设费用wordpress不使用ip访问
  • 水务 网站建设宁波建站模板系统
  • 方正集团网站是谁做的北京最新发布信息