user agent : 代表浏览器内核,不特指哪个浏览器
浏览器内核 厂商前缀 代表浏览器 内核背景Trident -ms- IE浏览器系列 该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器(壳浏览器)涌现。
Gecko -moz- Firefox Netscape6开始采用的内核,后来的Mozilla FireFox(火狐浏览器)也采用了该内核,Gecko的特点是代码完全公开
Webkit -webkit- Safari Safari内核,Chrome内核原型,开源,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码解构清晰、渲染速度极快,缺点是网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示
Blink -webkit- Chrome、opera等除IE、Firefox、Safari之外的几乎所有浏览器(几乎所有国产双内核浏览器(Trident/Blink)如360、猎豹、qq、百度等) Blink是一个由Google和Opera Software开发的浏览器排版引擎,是基于Webkit内核的子项目
Presto -o- Opera前内核[现已废弃] Opera12.17及更早版本曾经采用的内核,现已停止开发并废弃
其实浏览器拿到资源数据后,便开始浏览器渲染引擎的基本渲染流程
渲染引擎开始解析HTML文档,并把标签转化成内容树中的DOM节点。同时它也开始解析样式数据,外链的css文件以及style标签内的样式。所有这些样式数据以及HTML中的可见性指令都是用来创建另一棵树--render 树。
现在页面就呈现在我们面前了。。。
我看到有其他关于这个问题的解释,也挺完善的,截个图补充补充。。。
扩展:因为有这么个过程,所以我们就可以在不同时期干不同事情。页面加载完成有两种事件:
执行顺序
ready,表示文档结构(DOM结构)已经加载完成(不包含图片等非文字媒体文件),
onload,指示页面包含图片等文件在内的所有元素都加载完成
$(function(){ // do something }); // 其实这个就是jQuery ready()的简写,他等价于: $(document).ready(function(){ //do something }) // 或者如下的写法,因为jQuery 的默认参数是:“document”; $().ready(function(){ //do something })