作业队列和JavaScript运行时
Job Queues and the JavaScript runtime
Node.js公开process.nextTick
,这确保在将控制权返回到运行时时调用提供的回调。这会有"饿死事件循环"的风险,因为这会阻止对作业队列上的作业进行评估。
Internet Explorer暴露了setImmediate
,据我所知,它使用了一个单独的作业队列和一些逻辑,以便每个循环迭代一次从队列中弹出项目,排除了"事件循环饥饿"。
requestAnimationFrame
维护自己的回调队列,这些回调队列将在图形子系统的VBLANK之前一个接一个地被调用。
是否可以说JavaScript运行时协调来自各种队列的作业的运行,将它们提供给事件循环,以便在特定于这些队列的算法确定的时间执行,并且在某种意义上,正在发生的事情比单个任务队列服务的单个事件循环更复杂?
队列是如何工作的以及是否有多个是特定于实现的,但也可以有多个队列和特殊规则来声明哪个队列中的哪个作业将首先运行。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- JavaScript运行时是如何工作的
- 如何在运行时使用javascript隐藏图像
- 使用主题运行时portlet liferay时出现Javascript错误
- JavaScript运行时事件循环现有技术
- Appcelerator Titanium:在运行时下载并解释JavaScript代码
- 如何在javascript中在运行时获取对象/数组
- 当出现javascript运行时错误时会发生什么
- Javascript - 加载函数运行时未定义的变量
- 运行时不存在Javascript函数
- JavaScript运行时错误:完成此操作所需的数据尚不可用
- 未捕获的运行时JavaScript异常(Rhino)
- 让Javascript在SharePoint 2010上运行时遇到问题
- 无法使用javascript插件在首次运行时加载实际图像大小(图像在刷新后加载)
- RoR最快的javascript运行时
- Windows 8应用程序正在运行,现在得到0x800a1391-JavaScript运行时错误:'WinJS&
- 在运行时JavaScript中创建匿名函数
- 将运行时JavaScript值添加到Liferay动态数据列表
- 如何捕获承诺运行时Javascript错误