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

ecshop仿小米商城b2c网站程序网站查询入口

ecshop仿小米商城b2c网站程序,网站查询入口,wordpress仿微信公众号模板下载,dw做个人简历网页怎么做一.什么是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/476379.html

相关文章:

  • 惠州建设工程造价管理站网站指数是什么意思
  • asp.net网站建设百度怎样发布信息
  • 游戏周边产品 做网站长沙seo优化排名
  • 兰州网站搜索优化百度广告搜索引擎
  • 做灯饰的企业都会在哪些网站今日头条新闻下载安装
  • 上海网站建设q.479185700強网络公司名字
  • 长春专业网站建设模板自己怎么给网站做优化排名
  • 网站开发 哪种效率高头条广告入口
  • vps服务器10元一月安卓优化大师app
  • 邯郸建立网站费用网络市场营销
  • 专门做实习计算机项目的网站平台河南网站推广优化排名
  • 手机网站用什么软件做产品线上推广方式都有哪些
  • ecs怎么做网站北京网络排名优化
  • 效果型网站建设品牌网站建设方案
  • 钓鱼网站在线生成器台湾新闻最新消息今天
  • 重庆头条新闻深圳百度快速排名优化
  • 做网站设计注意什么细节seo视频教程百度网盘
  • 网站认证空间网址注册
  • 做网站加推广多少钱惠州抖音seo
  • 网站后台模板如何使用it培训机构排名
  • 深圳做企业网站的公青岛网站运营
  • 柳州 网站推广营销网站制作
  • 手机端做的优秀的网站兰州疫情最新情况
  • 好的网站建设哪家好桂林网站优化
  • 市政府门户网站抖音seo优化软件
  • 乌镇网站开发文档青岛今天发生的重大新闻
  • 十大禁用黄台免费入口超级seo助手
  • 什么做直播网站好百度seo优化哪家好
  • 开发公司硬底化路面工程入账长沙官网seo收费标准
  • 哪有做网站公司苏州seo关键词优化价格