Javascript 是否将多个模块视为单独的宏任务?
假设我有两个模块,如下所示:Javascript 是否将多个模块视为单独的宏任务?,javascript,html,es6-modules,Javascript,Html,Es6 Modules,假设我有两个模块,如下所示: <script type=“module” src="../js/module1.js"></script> <script type=“module” src="../js/module2.js"></script> 它们没有一个是相互输入的 如果module1在module2之前执行,这是否意味着当module1从调用堆栈弹出时,并且在微队列清空并且可能完成某些渲染后,调用
<script type=“module” src="../js/module1.js"></script>
<script type=“module” src="../js/module2.js"></script>
它们没有一个是相互输入的
如果module1在module2之前执行,这是否意味着当module1从调用堆栈弹出时,并且在微队列清空并且可能完成某些渲染后,调用堆栈将为空-可能会允许module2被推到调用堆栈上?基本上,module1和module2是被视为两个单独的宏任务,还是被视为一个大脚本?是的,它们基本上被视为两个宏任务,尽管它们实际上还不是事件循环的一部分,所以它们不是真正排队的任务 您的脚本元素是没有异步属性的模块脚本,我们属于处理模型的一部分,它将把它添加到中,在处理结束时将被清空。 我们想看的下一点是算法,作为算法的一部分,在上一个脚本的执行结束或脚本准备就绪之间的最后一段时间,它将被调用 从这个算法中,我们可以看出,浏览器最终必须 使用设置。 算法本身就是这样 [……] 所以,这很像是将它们视为两个独立的任务 关于绘制,它实际上可能发生,因为在解析时,当执行这些脚本时,浏览器必须 直到第一个脚本。。。
虽然浏览器确实可以绘制。是的,它们基本上被视为两个宏任务,尽管它还不是事件循环的一部分,所以它们不是真正排队的任务 您的脚本元素是没有异步属性的模块脚本,我们属于处理模型的一部分,它将把它添加到中,在处理结束时将被清空。 我们想看的下一点是算法,作为算法的一部分,在上一个脚本的执行结束或脚本准备就绪之间的最后一段时间,它将被调用 从这个算法中,我们可以看出,浏览器最终必须 使用设置。 算法本身就是这样 [……] 所以,这很像是将它们视为两个独立的任务 关于绘制,它实际上可能发生,因为在解析时,当执行这些脚本时,浏览器必须 直到第一个脚本。。。
浏览器确实可以进行绘制。在哪种加载条件下?您是否认为使用异步加载两个独立的模块?一个模块导入另一个模块?感觉似乎没有提出这个问题的细节atm@Mike“Pomax”Kamerman感谢您的评论,包括一些细节。希望是这样的,至少看起来您缺少async属性,而且可能还缺少defer,这将显著改变答案。@Mike'Pomax'Kamermans我的印象是模块有defer属性隐式搜索此站点上的“defer”:True。但您仍然需要异步。在哪种加载条件下?您是否认为使用异步加载两个独立的模块?一个模块导入另一个模块?感觉似乎没有提出这个问题的细节atm@Mike“Pomax”Kamerman感谢您的评论,包括一些细节。希望是这样的,至少看起来您缺少async属性,而且可能还缺少defer,这将显著改变答案。@Mike'Pomax'Kamermans我的印象是模块有defer属性隐式搜索此站点上的“defer”:True。不过你还是想要异步的。谢谢你给我指点规范。很高兴能参考tooThanks给我指点规范。也很高兴能参考