Closed RaineySpace closed 8 years ago
识别URL
完整的URL是由协议(比如http,ftp)、域名(比如baidu.com)、文件路径(比如`/html_data/20.html)和端口(比如80)四个部分组成。
baidu.com
查找本地hosts文件
在进行DNS请求前,系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射。
域名解析
查询本地域名服务器,解析域名为IP地址。本地域名服务器会去访问根域名服务器(.com),查找二级域名服务器(google.com)的IP。然后通过二级域名服务器的IP查找三级域名服务器(www.googlr.com)的IP地址,从而得到网址所对应的IP地址,并返回给浏览器。
根据IP地址访问服务器
访问服务器,如果服务器使用了反向代理,那么就通过反向代理指定的路径返回HTML文件。
浏览器解析
浏览器将HTML渲染成DOM树,并重新请求css、js、图片等资源文件。当CSS文件加载后开始解析和构建CSS规则树(CSS Rule Tree)。当JS文件加载后,通过DOM API和CSSOM API来操作DOM树和CSS规则树。
浏览器渲染
浏览器引擎通过DOM树和CSS规则树构建Rendering树
通过CSS规则树匹配DOM树进行定位坐标和大小,是否换行,以及position、overflow、z-index等等属性,这个过程称为Flow或Layout。
最终通过调用Native GUI的API绘制网页画面的过程称为Paint。
当用户在浏览网页时进行交互或通过js脚本改变页面结构时,以上部分操作有可能重复运行,此过程称为Repaint或Reflow。
当元素改变的时候,将不会影响元素在页面当中的位置(比如 background-color, border-color, visibility),浏览器仅仅会应用新的样式重绘此元素,此过程称为 Repaint。
当元素改变的时候,将会影响文档内容或结构,或元素位置,此过程称为 Reflow。( HTML 使用的是 flow based layout ,也就是流式布局,所以,如果某元件的几何尺寸发生了变化,需要重新布局,也就叫 Reflow。)
让友谊的小船 荡起双桨
识别URL
完整的URL是由协议(比如http,ftp)、域名(比如
baidu.com
)、文件路径(比如`/html_data/20.html)和端口(比如80)四个部分组成。查找本地hosts文件
在进行DNS请求前,系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射。
域名解析
查询本地域名服务器,解析域名为IP地址。本地域名服务器会去访问根域名服务器(.com),查找二级域名服务器(google.com)的IP。然后通过二级域名服务器的IP查找三级域名服务器(www.googlr.com)的IP地址,从而得到网址所对应的IP地址,并返回给浏览器。
根据IP地址访问服务器
访问服务器,如果服务器使用了反向代理,那么就通过反向代理指定的路径返回HTML文件。
浏览器解析
浏览器将HTML渲染成DOM树,并重新请求css、js、图片等资源文件。当CSS文件加载后开始解析和构建CSS规则树(CSS Rule Tree)。当JS文件加载后,通过DOM API和CSSOM API来操作DOM树和CSS规则树。
浏览器渲染
浏览器引擎通过DOM树和CSS规则树构建Rendering树
通过CSS规则树匹配DOM树进行定位坐标和大小,是否换行,以及position、overflow、z-index等等属性,这个过程称为Flow或Layout。
最终通过调用Native GUI的API绘制网页画面的过程称为Paint。
当用户在浏览网页时进行交互或通过js脚本改变页面结构时,以上部分操作有可能重复运行,此过程称为Repaint或Reflow。
当元素改变的时候,将不会影响元素在页面当中的位置(比如 background-color, border-color, visibility),浏览器仅仅会应用新的样式重绘此元素,此过程称为 Repaint。
当元素改变的时候,将会影响文档内容或结构,或元素位置,此过程称为 Reflow。( HTML 使用的是 flow based layout ,也就是流式布局,所以,如果某元件的几何尺寸发生了变化,需要重新布局,也就叫 Reflow。)