JavaScript间歇调用和超时调用

本文介绍了JavaScript作为单线程语言如何利用超时调用和间歇调用来调度代码执行。详细讨论了setTimeout()方法的工作原理,强调了其非精确执行时间以及任务队列的概念。同时,提到了通过clearTimeout()取消超时调用,以及在某些情况下,取消间歇调用(clearInterval())的重要性。建议优先考虑使用超时调用替代间歇调用,以避免不必要的资源消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript是单线程语言,但它允许通过设置超时值和间歇值来调度代码在特定的时刻内执行。

超时调用

超时调用需要使用window对象的setTimeout()方法,使用方式如下:

setTimeout(function(){
    alert("hello world!");
},1000) //1秒过后执行函数

超时调用可能不会在指定的时间内执行,因为js有一个任务队列,setTimeout第二个参数是告诉js再过多长时间把当前任务添加到任务队列中。如果任务队列是空的,那么添加的代码回立即执行;如果不为空,则要等待前面代码执行完后再执行。
调用setTimeout后会有一个数值ID,通过这个ID可以取消超时操作,代码如下:

var timtoutId = setTimeout(function(){
    alert("hello word!");
},1000);

clearTimeout(timeoutId);//取消超时调用

如果超时调用已发生,则clearTimeout无效。

间歇调用

间歇调用是按照指定的时间间隔重复执行代码

var intervalId = setInterval(function(){
    alert("Hello world!");
},10000)

clearInterval(intervalId );//取消间歇调用

间歇调用和超时调用类似,但是取消间歇调用的重要性远远高于取消超时调用,因为超时调用在代码执行完后就会停止,它的超时调用ID也没有必要跟踪,而间歇调用会直到页面被卸载。最好的方式是尽量用超时调用代替间歇调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值