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

省人大网站建设问卷调查seo优化费用

省人大网站建设问卷调查,seo优化费用,游戏开发公司排名,昆明 五华 网站建设一.什么是requestAnimationFrame: requestAnimationFrame 是浏览器提供的一个原生方法,用于在浏览器的下一次重绘之前执行一个回调函数,简单理解就是在现在这一帧的时间(如果是60fps,那就大概是1000/6016.6ms)内其他的…

一.什么是requestAnimationFrame:

requestAnimationFrame 是浏览器提供的一个原生方法,用于在浏览器的下一次重绘之前执行一个回调函数,简单理解就是在现在这一帧的时间(如果是60fps,那就大概是1000/60=16.6ms)内其他的东西已经执行完毕,就会执行这个函数,然后等这一帧的时间结束,又开始下一帧,一直循环。

它的核心作用是:在浏览器准备好重绘前自动调度回调函数,从而实现高性能动画效果。

二.基本使用方法:

1.基本语法:

let id = requestAnimationFrame(callback);

callback是执行的函数,浏览器会将当前帧的时间戳作为第一个参数传入;返回值id可以用于取消调用;

2.取消动画

cancelAnimationFrame(id);

三.使用场景:

1.用于绘制大量数据到页面上,可以避免页面卡顿

由于 requestAnimationFrame 的执行时间是这一帧其他事情都处理好了才会执行,所以可以把大的任务进行拆分,放在这里面执行,比如下面需要页面上渲染10万条数据:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>无痕渲染10w条数据</title><style>#container {max-height: 400px;overflow-y: scroll;}.item {padding: 5px;border-bottom: 1px solid #ccc;}</style></head><body><div id="container"></div><script>const data = [];for (let i = 1; i <= 100000; i++) {data.push("Item" + i);}const container = document.getElementById("container");let index = 0;function renderChunk(startTime) {const frameBudget = 16; // 每帧最多使用 16msconst fragment = document.createDocumentFragment();while (index < data.length) {const div = document.createElement("div");div.textContent = data[index++];fragment.appendChild(div);// performance.now() 表示当前代码执行时距离页面加载开始过去的时间,单位是ms// startTime是requestAnimationFrame给回调函数传入的参数,是当前帧的开始时间,也是通过performance.now()获取的if (performance.now() - startTime > frameBudget) break;}container.appendChild(fragment);if (index < data.length) {requestAnimationFrame(renderChunk);}}requestAnimationFrame(renderChunk);</script></body>
</html>

通过这种分开渲染的方式,可以避免页面卡顿。

2.用于获取更精准的时间

相较于使用 setInterval 和 setTimeout 定时器来定时完成任务,requestAnimationFrame可以得到更精准的时间,因为代码本身执行是会消耗时间的,或者因为其他耗时任务的执行,都会影响到定时器中代码的执行时间,但是requestAnimationFrame不会,每次它的执行,都可以获取到最新的时间,以下是一个实时更新当前时间的代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>获取当前时间</title></head><body><div id="time"></div><button onclick="cancelUpdate()">取消更新</button><script>let aniId = null;let updateTime = () => {let now = new Date();let hour = now.getHours().toString().padStart(2, "0");let minute = now.getMinutes().toString().padStart(2, "0");let second = now.getSeconds().toString().padStart(2, "0");let nowTime = `${hour}:${minute}:${second}`;document.getElementById("time").innerText = nowTime;aniId = requestAnimationFrame(updateTime);};updateTime()const cancelUpdate = () => {cancelAnimationFrame(aniId);};</script></body>
</html>
http://www.dtcms.com/wzjs/478751.html

相关文章:

  • 办理公司兰州正规seo整站优化
  • 网站公司推荐站长交流平台
  • 手机网页制作软件中文版郑州官网网站优化公司
  • 什么网站没人做广州网站营销seo
  • 网站滚动图片效果怎么做百度电话号码
  • 让做网站策划没经验怎么办建站优化公司
  • 网站开发需求分析怎么写百度seo是什么意思
  • 版权下如何做免费电影网站单个药品营销策划方案
  • 网络网站开发常用的seo查询工具
  • 个人网页设计模板基于html和css代码网站如何做seo推广
  • java做网站吗中国十大企业管理培训机构
  • 什么是营销网站哈尔滨seo服务
  • 天津响应式网站建设知乎营销平台
  • 用超轻粘土做网站网站批量收录
  • 天津网站建设业务提升排名
  • 科技服务公司网站模版seo搜论坛
  • 体育用品电子商务网站建设方案百度指数官方下载
  • iis5.1 建立网站恶意点击软件哪几种
  • 哪家建设网站好阿里云搜索引擎网址
  • 网站建设 广州今日新闻播报
  • 经典网站建设案例独立网站
  • 婚纱网站论文长春网站建设方案咨询
  • php在动态网站开发企业营销推广怎么做
  • 企业建设网站的目标超级外链工具 增加外链中
  • 做外贸公司网站最新国际足球世界排名
  • 德州建设网站视频外链在线生成
  • php网站做代理深圳网站搜索优化
  • 浙江网站建设哪家权威网站设计制作教程
  • 免费加速器永久免费版不用登录爱站seo综合查询
  • 给小公司做网站赚钱么舟山百度seo