这两个性能上有没有什么区别呢?
长时间执行会不会因为对内存的消耗而卡死呢?
在平时用的时候,应该首选用settimeout递归实现还是直接用setinterval呢?
这两个性能上有没有什么区别呢?
长时间执行会不会因为对内存的消耗而卡死呢?
在平时用的时候,应该首选用settimeout递归实现还是直接用setinterval呢?
记得老版本的 IE 使用 setInterval 的话,一旦窗口最小化再回来,就会在瞬间一股脑执行这期间堆积的回调,所以我一直以为这就是 setInterval 的毛病,长时间拒绝食用 setInterval。后来发现现代浏览器并不会存在这个问题?
性能和内存开销不存在差异的,做动画的 requestAnimationFrame 就是类似递归 setTimeout 啊( setTimeout 做 fallback 不是吗?)。所以适合递归的就用 setTimeout 递归,没什么明显递归特性就用 setInterval。但是他俩还是有区别的,试想如果每 1000ms 需要执行一次任务,每次任务执行耗时 100ms,那么递归 setTimeout 和直接 setInterval 区别就体现出来啦。
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
1、性能区别不大。
2、基本上不会的。
3、如果只是延迟执行一次,就用settimeout,否则用setinterval