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

javascript基础从小白到高手系列一千六百八十七:setInterval()

次,直到取消循环定时或者页面卸载。setInterval()同样可以接收两个参数:要执行的代码(字符 串或函数),以及把下一次执行定时代码的任务添加到队列要等待的时间(毫秒)。下面是一个例子:

注意 这里的关键点是,第二个参数,也就是间隔时间,指的是向队列添加新任务之前等 待的时间。比如,调用 setInterval()的时间为 01:00:00,间隔时间为 3000 毫秒。这意 味着 01:00:03 时,浏览器会把任务添加到执行队列。浏览器不关心这个任务什么时候执行 或者执行要花多长时间。因此,到了 01:00:06,它会再向队列中添加一个任务。由此可看 出,执行时间短、非阻塞的回调函数比较适合 setInterval()。
setInterval()方法也会返回一个循环定时 ID,可以用于在未来某个时间点上取消循环定时。要 取消循环定时,可以调用 clearInterval()并传入定时 ID。相对于 setTimeout()而言,取消定时的 能力对 setInterval()更加重要。毕竟,如果一直不管它,那么定时任务会一直执行到页面卸载。下 面是一个常见的例子:

 let num = 0, intervalId = null;let max = 10;let incrementNumber = function() {num++;
// 如果达到最大值,则取消所有未执行的任务 if (num == max) {clearInterval(intervalId);alert("Done"); }8
}
intervalId = setInterval(incrementNumber, 500);

在这个例子中,变量 num 会每半秒递增一次,直至达到最大限制值。此时循环定时会被取消。这个 模式也可以使用 setTimeout()来实现,比如:

let num = 0;
let max = 10;
let incrementNumber = function() {
num++;// 如果还没有达到最大值,再设置一个超时任务 11 if (num < max) {setTimeout(incrementNumber, 500);} else {alert("Done");}
}
setTimeout(incrementNumber, 500);

注意在使用 setTimeout()时,不一定要记录超时 ID,因为它会在条件满足时自动停止,否则会 自动设置另一个超时任务。这个模式是设置循环任务的推荐做法。setIntervale()在实践中很少会在 生产环境下使用,因为一个任务结束和下一个任务开始之间的时间间隔是无法保证的,有些循环定时任

http://www.lryc.cn/news/2415267.html

相关文章:

  • 下拉框的触发事件分析(onchange、onfocus、onclick)
  • 麒麟操作系统——全网最详细安装教程
  • JDK 1.8 64位 下载 安装 配置
  • VS 2005 制作Web安装- 使用InstallShield11.5部署Web程序 .NET 2.0安装与部署
  • 如何理解VB窗体中的scale类属性及width height属性之间的关系
  • joomla的使用
  • 显卡XP驱动 Win7驱动 NVIDIA GT520M GT525M GT540M
  • 使用TFS2010管理敏捷项目生命周期-系列指南4 Scrum v3 For TeamSystem-安装疑难解答
  • Windows 7下可以使用的虚拟光驱软件
  • 360杀毒卸载办法
  • 《苹果Mac OS X 10.6 Snow Leopard雪豹操作系统8BT下载地址》
  • UBI制作人:传统开发商不必恐惧社交游戏
  • AUTOSAR的E2E通信安全
  • 802.11--802.11ax协议
  • 一文了解 | 系统测试与集成测试有哪些类型和优势?
  • 【Hive】窗口函数(开窗函数部分)
  • 程序员常用的工具,有前后端开发经常用到的
  • 树——哈夫曼树的概念及其应用
  • 视区单位vw, vh简介以及可实际应用场景
  • 卡方分布
  • seq命令常用方法
  • tp5.0学习(一)
  • Windows11系统services.msc文件丢失问题
  • Java中的equalsIgnoreCase() (C AI 回答)
  • 计算机网络stp和utp,网络STP和UTP有什么区别——网络STP和UTP的区别介绍
  • android--RXJava详细使用篇
  • 39_WAF的概念、功能,Ubuntu 16下载安装、ModSecurity部署配置、LAMP环境部署、Ubuntu搭建DVWA靶机测试、测试WAF防御、OWASP规则集的部署
  • FTL——简介
  • 红帽认证-RHCE
  • 如何利用postfix发送邮件