关于浏览器原理中以及其中预解析这一节不是很明白

发布于 2022-09-02 20:02:22 字数 829 浏览 14 评论 0

最近在研究浏览器原理,下面是我对浏览器原理的理解(不对的欢迎指正):
浏览器加载页面是有这么几个过程,

  1. 解析html构建dom,

  2. 与此同时css解析器会解析css生成cssom(这里也有一个问题就是,解析html跟css 是不是同时开始的,还是解析html遇到style或link标签时才开始解析css),

  3. 根据DOM和CSSOM,生成一棵渲染树,

  4. 布局,

  5. 绘制

上述过程是一个渐进的过程,也是单一线程控制的,我们称该为UI线程。在第一步解析html时,遇到script标签时,这时UI线程会挂起,会通知javascript引擎线程来执行它,如果是外部脚本先下载在执行。javascript引擎线程执行完后,UI线程开始一步步的按照上面的过程生成页面。

但是看到“处理脚本和样式表的顺序”一节中的预解析,对于他的描述不是很明白。
原文是这样讲的:

预解析
WebKit 和 Firefox 都进行了这项优化。在执行脚本时,其他线程会解析文档的其余部分,找出并加载需要通过网络加载的其他资源。通过这种方式,资源可以在并行连接上加载,从而提高总体速度。请注意,预解析器不会修改 DOM 树,而是将这项工作交由主解析器处理;预解析器只会解析外部资源(例如外部脚本、样式表和图片)的引用。

我不知道上面那预解析中的其他线程是不是指的firefox的同时下载图片,css的2个线程,chrome同时下载图片,css4个线程呀?不包括js脚本?
只有在javascript引擎线程来执行,这个其他线程才开台并行加载资源?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

々眼睛长脚气 2022-09-09 20:02:22

请问你这是在哪本书上看的呀?
我也有类似的问题,而且这五项分别详细展开,又是如何进行的,各个时间节点又是如何串起来的。希望有地方有讲解,但我不知道在哪儿..

雪花飘飘的天空 2022-09-09 20:02:22

我也在探索类似问题,哎,知乎上和这里都没人回答。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文