I 当时处境很尴尬,
我在纯JavaScript上工作了近3年,我知道JavaScript是单线程语言,您可以使用setInterval和setTimeout函数模拟异步执行,
但是当我想到他们怎么工作的时候,我就不明白了。那么这些函数是如何影响执行上下文的呢?
我想,在特定的时间里,代码只运行一部分,然后切换到另一部分。如果是这样,那么许多setInterval或setTimeout调用会影响性能吗?
发布于 2018-05-09 06:54:37
JavaScript是一种单线程脚本语言,因此它可以一次执行一段代码(由于它的单线程性质),每个代码块都“阻塞”其他异步事件的进程。这意味着当异步事件发生时(如鼠标单击、计时器触发或XMLHttpRequest完成),将排队等待稍后执行。
setTimeout() 当您使用setTimeout()时,它只有在队列中轮到它时才会执行,如果由于某种原因导致的早期事件( setTimeout)阻塞,setTimeout会比setTimeout()函数中指定的时间延迟。在执行setTimeout回调函数期间,如果发生任何事件(例如单击事件),则会排队等待稍后执行。
setTimeout(function(){
  /* Some long block of code... */
  setTimeout(arguments.callee, 10);
}, 10);
setInterval(function(){
  /* Some long block of code... */
}, 10);setInterval()
https://stackoverflow.com/questions/22051209
复制相似问题