-
在url中输入地址到页面呈现发生了什么
查找ip地址
- 根据url的域名去查找ip地址
- 现在dns缓存中查找
- dns缓存中查找不到在本机的hosts文中查找有无对应ip
- hosts文件中没有,就去上级dns服务器中查找,知道找到根目录为止
tcp链接和http请求
- http协议建立在tcp协议之上,所以要先建立tcp链接,就是我们的tcp三次握手,保证服务端和客户端可以稳定通信
- 三次握手完成后,浏览器向服务器发送http请求
- 服务器接受到请求,并将资源返回给浏览器
- 资源在本地客户端下载并开始加载
html页面渲染
- 客户端浏览器加载html文件后,从上到下开始构建dom树
- 遇见css,css的url发起http请求,增加了Connection: keep-alive声明,故tcp连接不会关闭,可以复用
- http重新发起请求-响应过程
- 在css的请求过程中,解析器会继续解析html
- 遇到script,由于script内容可能会影响dom,所以解析器停止dom树生成,解析器被js阻塞,等带js去发起http请求加载.并知道js加载-执行完成之后,才会去开启解析
- JS 可以修改 DOM,如果在 JS 执行的时候 UI 线程还在工作,就可能导致不能安全的渲染 UI
- 浏览器为保证css和js的顺序,规定必须等样式表加载解析完才去执行js
- css解析生成css规则树
- 在规则树生成后,执行“布局”给每个节点计算位置坐标,“布局”完成后执行“绘制”渲染引擎去遍历css规则树完成页面的渲染和显示
- 为了保证页面能尽快的呈现出来,并不会等到整个html的dom树都构建完成才开始执行渲染,而是边变解析边渲染
- 在这一步中涉及到了回流和重绘
- 知道遇到html结束标签,页面渲染才算完成
-
相关阅读:
网站统计中的数据收集原理及实现
启动hadoop报ERROR org.apache.hadoop.hdfs.server.namenode.FSImage: Failed to load image from FSImageFile
淘宝(大数据库应用)--转载
MapReduce作业的map task和reduce task调度参数
Spark和Hadoop作业之间的区别
分析MapReduce执行过程
MapReduce框架Partitioner分区方法
LVS+keepalived实现负载均衡
Tomcat 详解
linux Tomcat restart脚本简单版
-
原文地址:https://www.cnblogs.com/liuXiaoDi/p/13064941.html
Copyright © 2020-2023
润新知