1.浏览器内核
1.1 浏览器内核介绍
之前讲浏览器内核一般是指浏览器渲染引擎和JavaScript引擎。目前内核一般指浏览器渲染引擎。
1.2 浏览器内核
UserAgent
userAgent指令
查看浏览器内核可以通过navigator.userAgent命令查看,相当于浏览器对自己的一个标识。userAgent格式
userAgent有专门的格式要求,但实际上测试发现浏览器厂家并不是完全按照规则来。
规则:浏览器标识(操作系统标识;加密等级标识;浏览器语言) 渲染引擎标识/版本信息userAgent举例
“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36”
这就是一个userAgent标识,基本上所有浏览器的浏览器标识都是"Mozilla"–mdn。这个userAgent后面跟了不少渲染引擎标识,是为了伪装自己,在代码中做兼容开发时可能会检查渲染引擎,而多个渲染引擎标识表明了该浏览器兼容性很强。注意最后Chrome和Safari不是渲染引擎标识,是浏览器版本,这里也是使用多个浏览器版本进行伪装。userAgent中出现的引擎
Gecko: FireFox浏览器Gecko引擎;功能强大,支持的插件多,但是耗费内存大。
Trident:IE浏览器Trident引擎;网页兼容性不太好。
Presto:Opera浏览器Presto引擎;速度最快的内核,但是兼容性不太好。
AppleWebkit:Safari浏览器Webkit引擎;渲染速度介于Presto和Gecko之间,但兼容性不太好。
(KHTML, like Gecko):KHTML是Apple在使用AppleWebkit前使用的引擎,这个加在一起代表Chrome浏览器Blink内核。
主要浏览器内核
Chrome:
使用Blink引擎,可以通过(KHTML, like Gecko)来判断是不是Blink引擎。Blink引擎基于谷歌之前一直使用的webkit引擎开发。JavaScript使用V8引擎Opera:
使用Blink引擎,Blink引擎是Opera与Chrome共同开发,Opera舍弃了自己的Presto内核。JavaScript使用Futhark引擎IE:
使用Trident引擎,网页兼容性不太好。JavaScript使用JScript引擎。Microsoft Edge:
使用Blink引擎。JavaScript使用ChakraCore引擎。FireFox:
使用Gecko引擎。JavaScript低版本使用SpiderMonkey,高版本使用TraceMonkey。Safari:
使用AppleWebkit引擎。JavaScript使用SquirrelFish引擎,低版本使用JavaScript Core引擎。国内大部分浏览器:
使用IE的Trident内核和AppleWebkit内核或webkit的衍生内核,利用双内核做到兼容