setTimeout与setInterval的区别

setTimeout定义和用法
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。setTimeout 方法接收两个参数,第一个参数为回调函数函数或字符串,第二个参数为触发时间(单位:毫秒)

setInterval()定义和用法
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

注意事项:

(1)setInterval()无视代码错误

如果setInterval执行的代码由于某种原因出错,它还会持续不断地调用该代码。

(2)setInterval无视网络延迟

假设你每隔一段时间就通过Ajax轮询一次服务器,看看有没有新数据。而由于某些原因(服务器过载、临时断网、流量剧增、用户带宽受限,等等),你的请求要花的时间远比你想象的要长。但setInterval不在乎。它仍然会按定时持续不断地触发请求,最终你的客户端网络队列会塞满Ajax调用。

(3)setInterval不保证执行

与setTimeout不同,你并不能保证到了时间间隔,代码就准能执行。如果你调用的函数需要花很长时间才能完成,那某些调用会被直接忽略。

settimeout和setinterval区别
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。

也就是说setTimeout()只执行一次,setInterval()可以执行多次。

两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。
————————————————
版权声明:本文为CSDN博主「zy451」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zy451/article/details/124977603

posted @ 2023-01-10 17:10  net-sky  阅读(60)  评论(0编辑  收藏  举报