面试的时候人家问浏览器渲染过程 这个怎么答?

面试的时候人家问浏览器渲染过程 这个怎么答?
最新回答
蔚蓝的心

2022-06-08 09:45:00

从用户输入浏览器输入url到页面最后呈现 有哪些过程?
一道很常规的题目,考的是基本网络原理,和浏览器加载css,js过程。

答案大致如下:

用户输入URL地址
浏览器解析URL解析出主机名
浏览器将主机名转换成服务器ip地址(浏览器先查找本地DNS缓存列表 没有的话 再向浏览器默认的DNS服务器发送查询请求 同时缓存)
浏览器将端口号从URL中解析出来
浏览器建立一条与目标Web服务器的TCP连接(三次握手)
浏览器向服务器发送一条HTTP请求报文
服务器向浏览器返回一条HTTP响应报文
关闭连接 浏览器解析文档
如果文档中有资源 重复6 7 8 动作 直至资源全部加载完毕
以上答案基本简述了一个网页基本的响应过程背后的原理。
但这也只是一部分,浏览器获取数据的部分,至于浏览器拿到数据之后,怎么渲染页面的,一直没太关注。
所以抽出时间研究下浏览器渲染页面的过程。
通过研究,了解一些基本常识的原理:

为什么要将js放到页脚部分
引入样式的几种方式的权重
css属性书写顺序建议
何种类型的DOM操作是耗费性能的
最清晰的声音

2024-01-04 17:47:10

其实就是页面生成的过程。

从打开浏览器开始进行域名解析 -> 建立连接 -> 发起请求 -> 等待响应 -> 接收数据。

浏览器加载显示html的顺序是按下面的顺序进行的:

  1. 现在我们说说IE的过程,IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。

  2. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。

  3. 如果遇到语义解释性的标签嵌入文件(JS脚本,CSS 等),下载过程会启用单独连接进行下载。

  4. 并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。

  5. 样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。

  6. JS、CSS中如有重定义,后定义函数将覆盖前定义函数。


仅供参考

选择奔跑

2022-12-30 17:14:01

从打开浏览器开始进行域名解析 -> 建立连接 -> 发起请求 -> 等待响应 -> 接收数据。
从打开浏览器开始进行域名解析 -> 建立连接 -> 发起请求 -> 等待响应 -> 接收数据。
从打开浏览器开始进行域名解析 -> 建立连接 -> 发起请求 -> 等待响应 -> 接收数据。
从打开浏览器开始进行域名解析 -> 建立连接 -> 发起请求 -> 等待响应 -> 接收数据。