关于浏览器原理中以及其中预解析这一节不是很明白
最近在研究浏览器原理,下面是我对浏览器原理的理解(不对的欢迎指正):
浏览器加载页面是有这么几个过程,
解析html构建dom,
与此同时css解析器会解析css生成cssom(这里也有一个问题就是,解析html跟css 是不是同时开始的,还是解析html遇到style或link标签时才开始解析css),
根据DOM和CSSOM,生成一棵渲染树,
布局,
绘制
上述过程是一个渐进的过程,也是单一线程控制的,我们称该为UI线程。在第一步解析html时,遇到script标签时,这时UI线程会挂起,会通知javascript引擎线程来执行它,如果是外部脚本先下载在执行。javascript引擎线程执行完后,UI线程开始一步步的按照上面的过程生成页面。
但是看到“处理脚本和样式表的顺序”一节中的预解析,对于他的描述不是很明白。
原文是这样讲的:
预解析
WebKit 和 Firefox 都进行了这项优化。在执行脚本时,其他线程会解析文档的其余部分,找出并加载需要通过网络加载的其他资源。通过这种方式,资源可以在并行连接上加载,从而提高总体速度。请注意,预解析器不会修改 DOM 树,而是将这项工作交由主解析器处理;预解析器只会解析外部资源(例如外部脚本、样式表和图片)的引用。
我不知道上面那预解析中的其他线程是不是指的firefox的同时下载图片,css的2个线程,chrome同时下载图片,css4个线程呀?不包括js脚本?
只有在javascript引擎线程来执行,这个其他线程才开台并行加载资源?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
已解决!
请问你这是在哪本书上看的呀?
我也有类似的问题,而且这五项分别详细展开,又是如何进行的,各个时间节点又是如何串起来的。希望有地方有讲解,但我不知道在哪儿..
我也在探索类似问题,哎,知乎上和这里都没人回答。。。