我知道javascript是同步的。
但是如何构建Node对象树是在浏览器中生成一个被称为的对象的浏览器中完成的 节点及其所有属性 用于绘制的CSS引擎和用于横向html dom的javascript引擎。或者下载的页面被加载到javascript引擎中并且javascript解析它以在全局执行上下文中准备好Node树? E.g
Function(fetched_page) -> Node tree constructor
答案 0 :(得分:1)
通常,浏览器会在加载时使用本机代码来解析HTML页面内容。
页面中包含的任何脚本都会以找到的形式执行(除非使用带有<script>
和/或defer
属性的async
标记加载。这就是为什么除非您等待<body>
事件或类似事件,否则您无法在<head>
中找到的脚本中引用页面"onload"
中定义的元素 - 那些元素还没有存在。
浏览器的JavaScript解释器中可用的与DOM相关的函数通常只是浏览器本身使用的相同本机代码函数的挂钩。