区别:
setTimeOut(表达式,时间)=》是指延迟指定时间后才调用函数,调用次数仅一次,但可以根据条件反复调用setTimeOut实现循环。
setInterVal(表达式,时间)=》是指每隔指定的时间就执行表达式,次数不为一,好比设置时间为4秒,每隔4秒就执行眨眼这个操作,循环操作下去。
业务场景的区别:
setTimeOut用于延迟执行某方法或功能。
setInterVal一般用于刷新表单,对于一些表单的假实时指定时间刷新同步。
注意点:
尽量不要用setInterVal()
原因:
1、setInterVal()无视代码错误
setInterVal有个讨厌的习惯,即对自己调用的代码是否报错这件事漠不关心。换句话说,如果setInterVal执行的代码由于某种原因出了错,它还会持续不断地调用该代码。
2、setInterVal无视网络延迟
假设你每隔一段时间就请求一次服务器,看看有没有新数据。而由于某些原因(如服务器过载、临时断网、流量剧增、用户带宽受限等),你的请求要花的时间远比你想象的要长。但setInterVal不在乎。它仍然会按定时持续不断地触发请求,最终你的客户端网络队列会塞满ajax调用。
3、setInterVal不保证执行
与setTimeOut不同,你并不能保证到了时间间隔,代码就准能执行。如果你调用的函数需要花很长时间才能完成,那那某些调用会被直接忽略。