美文网首页前端大杂烩
浏览器如何解析 HTML?

浏览器如何解析 HTML?

作者: lio_zero | 来源:发表于2022-05-26 21:08 被阅读0次

译自 HTML parsing

浏览器渲染引擎从网络层取得请求的文档,一般情况下文档会分成 8KB 大小的分块传输。

HTML 解析器的主要工作是对 HTML 文档进行解析,生成解析树。

解析树是以 DOM 元素以及属性为节点的树。DOM 是文档对象模型(Document Object Model)的缩写,它是 HTML 文档的对象表示,同时也是 HTML 元素面向外部(如 JavaScript)的接口。树的根部是 Document 对象。整个 DOM 和 HTML 文档几乎是一对一的关系。

解析算法

HTML 不能使用常见的自顶向下或自底向上方法来进行分析。主要原因有以下几点:

  • 语言本身的“宽容”特性
  • HTML 本身可能是残缺的,对于常见的残缺,浏览器需要有传统的容错机制来支持它们
  • 解析过程需要反复。对于其他语言来说,源码不会在解析过程中发生变化,但是对于 HTML 来说,动态代码,例如脚本元素中包含的 document.write() 方法会在源码中添加内容,也就是说,解析过程实际上会改变输入的内容

由于不能使用常用的解析技术,浏览器创造了专门用于解析 HTML 的解析器。解析算法在 HTML5 标准规范中有详细介绍,算法主要包含了两个阶段:标记化(tokenization)和树的构建

解析结束之后

浏览器开始加载网页的外部资源(CSS,图像,JavaScript 文件等)。

此时浏览器把文档标记为可交互的(interactive),浏览器开始解析处于推迟(deferred)模式的脚本,也就是那些需要在文档解析完毕之后再执行的脚本。之后文档的状态会变为完成(complete),浏览器会触发加载(load)事件。

注意解析 HTML 网页时永远不会出现无效语法(Invalid Syntax)错误,浏览器会修复所有错误内容,然后继续解析。

相关文章

  • CSS 知识总结

    浏览器如何渲染页面 浏览器解析 1、浏览器通过请求的 URL 进行域名解析,向服务器发起请求,接收文件(HTML、...

  • JS基础

    浏览器是如何渲染页面和加载页面 解析HTML以重建DOM树(Parsing HTML to construct t...

  • Linux_210_浏览器解析HTML

    浏览器解析HTML 浏览器拿到index.html文件之后,解析html网页文件,遇见静态资源(js、css、im...

  • 前端面试每日 3+1 —— 第390天

    今天的知识点 (2020.05.10) —— 第390天 (我也要出题) [html] 浏览器是如何解析html的...

  • 2020-07-23 18课 CSS动画+浏览器渲染原理

    浏览器渲染原理 渲染机制 浏览器加载HTML代码后解析HTML代码来构建HTML树(DOM) 加载CSS代码后解析...

  • 浏览器解析工作流程

    浏览器解析浏览器解析大概的工作流程大致可归纳为四个步骤: 解析HTML以构建DOM树:渲染引擎开始解析HTML文档...

  • 每日前端签到(第八十天)

    第八十天(2018-10-23) [html] 举例说明如何原样输出HTML代码,不被浏览器解析? [css] 写...

  • 重绘和重排(回流)

    一、浏览器渲染HTML的步骤 HTML被HTML解析器解析成DOM Tree, CSS则被CSS解析器解析成CSS...

  • 虚拟DOM是啥?

    一、浏览器渲染HTML的步骤 HTML被HTML解析器解析成DOM Tree, CSS则被CSS解析器解析成CSS...

  • 简析浏览器渲染机制

    浏览器渲染流程1.浏览器解析(1)浏览器解析HTML,构建DOM树(2)浏览器解析css,构建CSS规则树(2)解...

网友评论

    本文标题:浏览器如何解析 HTML?

    本文链接:https://www.haomeiwen.com/subject/hpbjdltx.html