关于浏览器的原理

首先,我们浏览的网页文件存放在服务器端(也就是Web服务器)中

在我们对网站进行访问的时候,先是进行Request请求阶段,在这个阶段里会进行一系列的协议以及解析:DNS解析、TCP的三次握手与四次挥手、HTTPS和HTTP协议
之后是Response响应阶段:HTTP状态码、304缓存、HTTP报文

而在客户端也就是浏览器中,我们先是从服务器拿到文件代码,在拿到代码后于内存中开辟出一块栈内存用来给代码的执行提供环境;同时分配一个主线程去一行行的解析和执行代码;
每一行代码都是经过进栈执行、执行完出栈的顺序来的,而需要注意的就是,当浏览器遇到 link、script、img等请求时,都会开辟出全新的线程去加载资源文件(浏览器是多线程,但js只是单线程

在代码进栈出栈执行过程中,是由一个顺序的,叫做任务队列(Task queue),在任务队列中(单线程),所有任务都是顺序完成的,而完成之后则会加载到页面当中,这就叫事件循环Event Loop,
事件循环实际上就是——代码在进栈出栈的执行过程中,会先自上而下走一遍,只生成DOM树,之后是css处理完成后生成CSSDOM,这两个构成Render Tree,而任务队列的每一个任务完成后都会插入到DOM树中.

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值