关于主流浏览器内核的二三事

发现作为一个未来前端工程师,今天被问到浏览器内核的事情,竟然卡壳愣住了,所以以下的内容仅是初步对各大浏览器内核的调研。有不对的地方,请各位大佬指正。

浏览器内核是一个浏览器的核心部分,英文名字叫“Rendering Engine”,大致可翻译为 渲染引擎 。渲染这个词对我们前端工作人员来说应该都不陌生。浏览器内核主要就负责,将对网页语法的解释(HTML,JS,CSS)渲染在屏幕上。它决定了浏览器如何显示网页的内容以及页面的格式信息。

而前端工作人员,经常被这样要求:能够编写兼容各大主流浏览器的代码。我初步的认为,就是我们编写的代码,能够在各大内核上被正确的渲染。

那么,要达到这一个目的,首先,我们就要知道,有些什么样的浏览内核,他们各有什么特色。

Trident

也就是我们俗称的“IE内核”,早期由微软在Mosaic代码的基础之上修改而来的。

  • 优点
    是一款开放的内核,其接口内核设计的相当成熟
  • 缺点
    在早期,由于微软长时间没有更新该内核,使得它曾经一度与W3C标准脱节
    内核的大量bug等安全问题没有及时解决,在非Trident内核浏览器的市场占有率大幅度提高时,使得很多网页开发者意识到了网页标准和非IE浏览器的浏览效果问题。

Webkit

苹果公司出品,是开源世界的一大贡献。

  • 优点
    开源,被多个浏览器应用。遵循W3C标准,性能非常好,网页浏览速度较快
  • 缺点
    对于网页代码的容错性不高

一个小补充,Webkit虽然被大家称为浏览器内核,但不太适合直接称为Rendering Engine,主要就是因为Webkit是由WebCore和JSCore两大引擎构成的。

Gecko

Netscape6开始采用的内核,后来的Mozilla FireFox也采用了该内核,所以常被称作“火狐内核”

  • 优点
    完全开源,可开发程序很高,可跨平台,功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口
  • 缺点
    消耗很多的资源,比如内存

主要的浏览器内核就列了这三个,国内一般接触到的浏览器基本都是这三个内核中的一个或者是组合。许多号称拥有双核甚至多核的浏览器,一般其中一个是Trident,再搭配另外一个。国内厂商一般将Trident内核叫做“兼容浏览模式”,其他内核叫做“告诉浏览模式”

一些小知识点

  • 我们常说的chrome浏览器是谷歌使用WebKit作为内核原型开发的一个分支,可以称之为Chromium引擎。在执行js代码,用的是谷歌自己的V8引擎

  • 在工作中,常常要求前端开发人员代码能够兼容各大主流浏览器,其实就是在于各大浏览器使用的渲染引擎和JS引擎不同,有部分自己的渲染规则。尤其是对于很多地区还会使用低版本的IE浏览器,上文说了,早期的版本没有严格遵循W3C标准,所以给开发工作提出了很大挑战。

  • 也许很多小伙伴在初学的时候,都会有过和我一样的思考,所谓兼容主流浏览器,不就是考虑要兼容低版本的IE吗?但是实际上,浏览器内核国内暂时没有自己的浏览器内核,全是使用国外开源的内核,所以还有很多一些小众的浏览器在开发的时候就是用Trident内核的。

  • 关于如何兼容主流浏览器,大家请移步看看别人的文章

你可能感兴趣的:(关于主流浏览器内核的二三事)