大家好,蓉蓉来为大家讲解下。loopback,loopback地址是什么这个很多人还不知道,现在让我们一起来看看吧!
理解 JavaScript、调用栈(Call Stack)和事件循环(Event Loop)
众所周知JavaScript是单线程编程语言,它只有一个单一的调用栈(Call Stack)。当调用栈有函数在运行,它就不能做其他任何事。
由于JavaScript单一调用堆栈的特性,导致了当在调用堆栈中进行的函数需要大量时间才能处理时,浏览器会处于等待状态,不会运行其他JavaScript 代码,甚至可能会停止响应,那么要如何解决呢?
虽然JavaScript有很多允许异步的代码(如setTimeout,AJAX等),但是JavaScript引擎只会在同一时刻执行一个程序。JavaScript引擎运行在一个宿主环境中(通常是浏览器或者node.js),宿主环境中有一个事件循环(Event Loop)的内置机制,会根据时间顺序去调用 JavaScript 引擎去执行程序。
事件循环的任务只有一个,就是去监控调用栈(Call Stack)和回调队列(Callback Queue)。当调用栈为空时,它会将取出队列中的第一个事件,放入到调用栈中执行。这样的迭代在事件循环中被称为一个tick。
JavaScript代码以run-to-completion的方式运行,这意味着如果调用栈当前正在执行某些代码,则事件循环会被阻塞,并且不会从队列中添加任何调用,直到栈再次为空。
这就是为什么运行计算密集型任务时不要阻塞调用栈很重要。
如果你执行了太多的代码或者阻塞了你的回调队列,你的网站将会变得无响应,因为它无法执行任何新的JavaScript代码。
将异步代码放在回调函数中,并将setTimeout设置为0ms,这样浏览器就可以在继续执行回调函数之前进行更新DOM等操作。
本文loopback,loopback地址是什么到此分享完毕,希望对大家有所帮助。