“Event Loop:事件循环”的版本间差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
 (创建页面,内容为“category:JavaScript  == 关于 ==  在 MDN 上看到 JavaScript 的[https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop 《并发模型与事件循环》]一节,但由于该页面内容过少,实在不变学习。    而网络上搜到的内容大同小异,互相又有不小出入,难以拿捏。    众所周知,JavaScript 是没有所谓源代码的“源代码”,所以这部分内容只能在“规范”文件<ref>参见:[http…”)  | 
				 (→相关概念)  | 
				||
| 第12行: | 第12行: | ||
== 相关概念 ==  | == 相关概念 ==  | ||
=== JavaScript 中的线程 ===  | |||
=== macrotask 与 microtask ===  | |||
 JavaScript中,“任务”被分为两种:“任务”(Task,也叫:宏任务,MacroTask)与“微任务”(MicroTask)。  | |||
# '''宏任务(macrotask)''':  | |||
# '''微任务(microtask)''':  | |||
=== 运行时 ===  | |||
 与 Java 的运行时概念类似,JavaScript 也有其运行时。  | |||
== 事件循环 ==  | |||
 要协调事件、用户交互、脚本、渲染、网络等,用户代理必须使用本节中描述的事件循环。每个代理都有一个关联的事件循环,该循环对该代理是唯一的。  | |||
 当宏任务和微任务都处于 任务队列(Task Queue) 中时,微任务的优先级大于宏任务,即先将微任务执行完,再执行宏任务;  | |||
 这是理解上优点小偏差  | |||
== 补充内容 ==  | |||
=== 如何使用“微任务”(microtask)? ===  | |||
=== 如何实现无延迟的 setTimeout? ===  | |||
== 参考 ==  | == 参考 ==  | ||
<references/>  | <references/>  | ||
2023年3月23日 (四) 18:29的版本
关于
在 MDN 上看到 JavaScript 的《并发模型与事件循环》一节,但由于该页面内容过少,实在不变学习。 而网络上搜到的内容大同小异,互相又有不小出入,难以拿捏。 众所周知,JavaScript 是没有所谓源代码的“源代码”,所以这部分内容只能在“规范”文件[1]了。
以下内容参照《HTML Standard》、MDN、与网络内容整理。
相关概念
JavaScript 中的线程
macrotask 与 microtask
JavaScript中,“任务”被分为两种:“任务”(Task,也叫:宏任务,MacroTask)与“微任务”(MicroTask)。
- 宏任务(macrotask):
 - 微任务(microtask):
 
运行时
与 Java 的运行时概念类似,JavaScript 也有其运行时。
事件循环
要协调事件、用户交互、脚本、渲染、网络等,用户代理必须使用本节中描述的事件循环。每个代理都有一个关联的事件循环,该循环对该代理是唯一的。
当宏任务和微任务都处于 任务队列(Task Queue) 中时,微任务的优先级大于宏任务,即先将微任务执行完,再执行宏任务; 这是理解上优点小偏差