美文网首页
HTML文档是边加载边解析、预解析

HTML文档是边加载边解析、预解析

作者: 凌晨四点打铁匠 | 来源:发表于2022-03-20 20:33 被阅读0次

    HTML文档加载边解析

    之前一直以为html是加载完之后才由html解析器进行解析的,学习了浏览器原理之后,才知道。HTML解析器并不是等整个文档加载完成之后再解析的,而是网络进程加载了多少数据,HTML 解析器便解析多少数据。

    具体的详细流程如下:
    浏览器的网络进程接收到响应头之后,会根据响应头中的 content-type 字段来判断文件的类型,比如 content-type 的值是“text/html”,那么浏览器就会判断这是一个 HTML 类型的文件,然后为该请求选择或者创建一个渲染进程。渲染进程准备好之后,网络进程和渲染进程之间会建立一个共享数据的管道,网络进程接收到数据后就往这个管道里面放,而渲染进程则从管道的另外一端不断地读取数据,并同时将读取的数据“喂”给 HTML 解析器。你可以把这个管道想象成一个“水管”,网络进程接收到的字节流像水一样倒进这个“水管”,而“水管”的另外一端是渲染进程的 HTML 解析器,它会动态接收字节流,并将其解析为 DOM。

    关于HTML的预解析

    一般情况下,html文档解析时,遇到js脚本就会暂停,等待脚本的下载、执行,而下载的也比较依赖网络环境、脚本大小等。针对这个情况,Chrome 浏览器做了很多优化,其中一个主要的优化是预解析操作。当渲染引擎收到字节流之后,会开启一个预解析线程,用来分析 HTML 文件中包含的 JavaScript、CSS 等相关文件,解析到相关文件之后,预解析线程会提前下载这些文件。

    原文

    极客时间-浏览器工作原理与实践

    相关文章

      网友评论

          本文标题:HTML文档是边加载边解析、预解析

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