浏览器内核的差异
2017年04月19日 23:47:28
阅读数:185
浏览器内核:
浏览器最重要最核心的部分是“render engine”,即解释引擎,专门负责对html,css,js等进行解释并最终渲染到窗口中,但是不同的浏览器对脚本,文件等的解释不是完全一样的,这就导致开发中所要面对的兼容性问题;
1
2
trident:
ie浏览器内核,市场占有率最大的浏览器内核,ie9之前存在很多兼容问题,但之后的版本改善了很多,不过仍旧存在js,css的兼容问题,但是其提供了大量的接口,功能;
基于trident的浏览器:
ie6,ie7,ie8(trident4.0),ie9(trident 5.0),ie10(trident6.0);
世界之窗,360安全浏览器,遨游2.0(3.0以上版本开始采用webkit内核),搜狗浏览器,腾讯TT;
其中部分版本的浏览器是双核浏览器,甚至是多核,
1
2
3
4
5
6
gecko:
netscape6开始使用的内核,后来firefox继续沿用发展,背后是强大的mozilla基金会,现在大多称为firefox内核,特点是跨平台,可以在linux,mac,window上进行使用,兼容性优,对w3c标准的支持好;
基于gecko的浏览器:
firefox等;
1
2
3
4
presto:
opera采用的浏览器内核,特点是渲染速度极快,处理js的速度优于gecko和trident,但是兼容性差;
基于opera浏览器:
opera等;
1
2
3
4
webkit:
苹果率先开源的,谷歌浏览器上也使用的内核,由khtml发展而来,渲染速度快,性能好,对w3c标准的支持也很好;
基于webkit浏览器:
chrome、safari等、塞班手机浏览器、Android手机默认的浏览器浏览器;
1
2
3
4
khtml(Linux):
KDE开发的内核,速度快捷,容错率低;
常见的khtml内核的浏览器有:konqueror
1
2
3
浏览器渲染的原理:
1.当用户在地址栏里面输入网址并敲下回车的时候,浏览器开始向服务器发出请求;
2.当浏览器拿到html页面的时候,开始从上而下进行解释;
3.当遇到link标签的时候,浏览器会再次向页面进行请求,并根据请求得到的css来重绘页面;
4.当遇到script标签的时候,浏览器再次请求服务器,并执行得到的js对页面进行重绘;
5.当遇到图片等其他文件的时候,浏览器也会再次发起请求并根据拿到的文件来对页面进行重绘;
6.当进行上面这些步骤时,浏览器的重绘回流等是无法避免的,即需要进一步的优化,比如制作雪碧图,避免反复请求,给图片固定宽高等等;
上面的内容也可以解释为:
浏览器拿到html、css、js,开始构建一个dom树,页面要显示的各元素都会创建到这个dom树当中,每当一个新元素加入到这个dom树当中,浏览器便会通过css引擎查询css样式表,找到符合该元素的样式规则应用到这个元素上,每一次应用新规则都可能引起重绘回流;
查阅网上知识有感,请大家多多指正;