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

定时器的知识点总结

一、什么是 JavaScript 定时器

JavaScript 定时器是 JavaScript 提供的用于在指定时间间隔后执行代码的机制。它允许我们在程序中设置延迟执行或周期性执行的任务,为页面增添动态性和交互性。在 JavaScript 中,主要有两种类型的定时器:setTimeout() 和 setInterval(),它们各自有着独特的功能和应用场景。

二、setTimeout () 定时器

setTimeout() 方法用于设置一个定时器,该定时器在定时器到期后执行一次指定的函数或代码段。

window.setTimeout(调用函数, (延迟的毫秒数), 参数1, 参数2,...);

其中,window 可以省略;调用函数 可以是直接定义的函数、函数名,也可以是字符串形式的 '函数名()'(不过使用字符串形式类似 eval() 执行代码,存在安全风险,不推荐使用);延迟的毫秒数 表示等待多久后执行函数,省略时默认是 0,且必须以毫秒为单位;参数1, 参数2,... 是向延迟函数传递的额外参数(IE9 以上支持) 。

setTimeout(function () {
    console.log('三秒后执行我');
}, 3000);

上述代码会在 3 秒(3000 毫秒)后在控制台输出 “三秒后执行我”。这里的函数 function () { console.log('三秒后执行我'); } 就是回调函数,它不会立即执行,而是等待设定的时间结束后才被调用 。

停止 setTimeout () 定时器

如果我们想要在定时器到期之前取消它,可以使用 clearTimeout() 方法。

window.clearTimeout(timeoutID);

 window 可省略,timeoutID 是通过 setTimeout() 创建的定时器的标识符 。

var timeoutID = setTimeout(function () {
    console.log('本来应该执行我,但可能被取消');
}, 5000);
var cancelButton = document.querySelector('#cancelButton');
cancelButton.addEventListener('click', function () {
    clearTimeout(timeoutID);
});

在这个例子中,我们创建了一个 5 秒后执行的定时器。同时,给一个按钮添加了点击事件,当点击按钮时,通过 clearTimeout(timeoutID) 取消了定时器,这样定时器的回调函数就不会被执行 。

三、setInterval () 定时器

setInterval() 方法用于重复调用一个函数,每隔指定的时间间隔,就会去调用一次回调函数。

window.setInterval(回调函数, (间隔的毫秒数), 参数1, 参数2,...);

 同样,window 可省略;回调函数 的形式与 setTimeout() 中的类似;间隔的毫秒数 省略默认是 0,必须以毫秒为单位,表示每隔多久自动调用一次函数;参数1, 参数2,... 是传递给回调函数的额外参数 。

var count = 0;
var intervalID = setInterval(function () {
    count++;
    console.log('每隔一秒,我被执行一次,这是第 ' + count + ' 次');
}, 1000);

清除 setInterval () 定时器

当我们不再需要 setInterval() 定时器持续执行时,可以使用 clearInterval() 方法来取消它。

window.clearInterval(intervalID);

window 可省略,intervalID 是通过 setInterval() 创建的定时器的标识符 。

var startButton = document.querySelector('#startButton');
var stopButton = document.querySelector('#stopButton');
var intervalID;
startButton.addEventListener('click', function () {
    intervalID = setInterval(function () {
        console.log('定时器启动,持续执行');
    }, 2000);
});
stopButton.addEventListener('click', function () {
    clearInterval(intervalID);
});

 在这个示例中,点击 “开始” 按钮会启动一个定时器,每隔 2 秒在控制台输出信息;点击 “停止” 按钮则会通过 clearInterval(intervalID) 清除定时器,使其不再执行 。

相关文章:

  • Seata 分布式事务框架:从下载到实战配置全解析
  • 10. 九转金丹炼矩阵 - 矩阵置零(标记优化)
  • 【练习】【回溯:分割】力扣131. 分割回文串
  • Win11作为宿主机,运行VMware 总没有网络
  • 21.《SpringBoot 异步编程@Async与CompletableFuture》
  • Linux系统移植之Uboot启动流程
  • MySQL(高级特性篇)11章——数据库的设计规范
  • 电商运营中私域流量的转化与变现:以开源AI智能名片2+1链动模式S2B2C商城小程序为例
  • 【Linux】常用命令(Ubuntu系统)
  • NSFNET是什么?NSFNET网络具有什么特点?
  • numpy中axis问题记录
  • 遥控器控制nefflix优化
  • 【拼图——拼图类压缩dp,矩阵乘法,快速幂,DFS】
  • FinRL-DeepSeek: 大语言模型赋能的风险敏感型强化学习交易代理
  • 使用shardingsphere-proxy读写分离
  • Java网络编程封装
  • 如果二者隔离级别不一致,以哪个为主。例如@Transactional 隔离级别是RC,mysql是RR
  • MySQL安装
  • Docker 与 CI/CD:自动化构建和部署
  • MySQL数据库——索引结构之B+树
  • 做gif动图的网站犯法吗/2021谷歌搜索入口
  • 网站被黑/企业网站排名优化公司
  • 太原网站建设优化/云搜索下载
  • 手机wap网站制作/清博舆情系统
  • 域名访问网站应该怎么做/长沙有实力seo优化
  • 东营网站建设/网络关键词优化方法