定时函数setTimeOut()和setInterVal()的区别

区别:

setTimeOut(表达式,时间)=》是指延迟指定时间后才调用函数,调用次数仅一次,但可以根据条件反复调用setTimeOut实现循环。

setInterVal(表达式,时间)=》是指每隔指定的时间就执行表达式,次数不为一,好比设置时间为4秒,每隔4秒就执行眨眼这个操作,循环操作下去。


业务场景的区别:

setTimeOut用于延迟执行某方法或功能。

setInterVal一般用于刷新表单,对于一些表单的假实时指定时间刷新同步。


注意点:

尽量不要用setInterVal()

原因:

1、setInterVal()无视代码错误

setInterVal有个讨厌的习惯,即对自己调用的代码是否报错这件事漠不关心。换句话说,如果setInterVal执行的代码由于某种原因出了错,它还会持续不断地调用该代码。

2、setInterVal无视网络延迟

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

3、setInterVal不保证执行

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容