浏览器引擎

前端知识普及之HTML

廉价感情. 提交于 2020-04-07 19:59:15
本文采用问答模式,目的是深入HTML内部,去学习一些我们不经常关注,但却实实在在存在的problem. 文章内容略显装逼,如果大家受不了,请带好护目镜。 什么是Doctype?能吃吗? 我想使用过sublime的同学,应该会有一个snippets。 !+[TAB] 结果就是: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html> 没错,不知不觉中,!DOCTYPE html已经变为标准了。 没错,就是因为H5的出现。 Doctype就是用来告诉browser用什么文档标准来解析这个文档. 而!DOCTYPE html就是告诉浏览器使用h5的标准来解析文档。 说起DocType的内容,这应该算是一段血泪史。 一开始HTML是基于SGML来进行编译的,通过指定DTD,我们告诉浏览器使用哪一种DTD来对文档进行解析。在HTML5以前的title上,我们都需要指定某一个DTD。 以前比较流行的有:HTML 4.01/XHTML. 分别各有3中。 常见的就是比较宽松的DTD: 比如:HTML4.01 Transtional <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

浏览器面试题总结

寵の児 提交于 2020-03-22 18:19:24
1. 你对浏览器的理解? 浏览器的主要功能是将用户选择的 web 资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常 是 HTML,也包括 PDF、image 及其他格式。用户用 URI(Uniform Resource Identifier 统一资源标识符)来指定所请 求资源的位置。 HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范进行维护,W3C 是负责制定 web 标准的 组织。 但是浏览器厂商纷纷开发自己的扩展,对规范的遵循并不完善,这为 web 开发者带来了严重的兼容性问题。 简单来说浏览器可以分为两部分,shell 和 内核。 其中 shell 的种类相对比较多,内核则比较少。shell 是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作, 参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些 浏览器并不区分外壳和内核。从 Mozilla 将 Gecko 独立出来后,才有了外壳和内核的明确划分。 2. 你对浏览器内核的理解? 主要分成两部分:渲染引擎和 JS 引擎。 渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示 html、xml 文档及图片,它也 可以借助插件(一种浏览器扩展

浏览器内核 Trident,Gecko,WebKit,Presto

谁说我不能喝 提交于 2020-03-20 05:14:31
Trident,Gecko,WebKit三种浏览器引擎的简单介绍 由于项目的原由最近接触了很多优秀的项目,其中包括HTML排版引擎,以下对其做下简单的介绍和比较. 现在浏览器的内核引擎,基本上是三分天下: Trident : IE 以Trident 作为内核引擎。 Gecko : Firefox 是基于 Gecko 开发。 WebKit : Safari, Google Chrome 基于 Webkit 开发。Trident Trident (又称为MSHTML),是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版释出,之后不断的加入新的技术并随着新版本的Internet Explorer释出。在未来最新的Internet Explorer第七版中,微软将对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML及Presto。   Trident引擎被设计成一个软件组件(模块),使得其它软件开发人员很容易的将网页浏览的功能加到他们自行开发的应用程序里。微软提出了一个称为组件对象模型(COM)的软件接口架构

浏览器内核Trident/Gecko/WebKit/Presto

拟墨画扇 提交于 2020-03-16 08:02:15
“浏览器内核”主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML、JavaScript)并渲染、展示网页。因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎, 渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲 染、展示效果也可能不同。   浏览器内核种类繁多,商用的加上非商业的免费内核,大约会超过10款,我们今天重点看一下目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto。    一、Trident内核(代表: Internet Explorer )   说起Trident,很多人都会感到陌生,但提起IE(Internet Explorer)则无人不知无人不晓,由于其被包含在全世界使用率最高的 操作系统 Windows中,得到了极高的市场占有率,所以我们又经常称其为IE内核。   Trident(又称为MSHTML),是 微软 开发的一种排版引擎。它在1997年10月与IE4一起诞生,一直在被不断地更新和完善。而且除IE外,许多产品都在使用Trident核心,比如Windows的Help程序、 RealPlayer 、 Windows Media Player 、 Windows Live Messenger、Outlook

前端面试题四

家住魔仙堡 提交于 2020-03-13 00:24:22
面试有几点需注意: 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知识、算法、项目细节、技术视野、开放性题、工作案例。 细节追问: 可以确保问到你开始不懂或面试官开始不懂为止,这样可以大大延展题目的区分度和深度,知道你的实际能力。因为这种知识关联是长时期的学习,临时抱佛脚绝对是记不住的。 回答问题再棒,面试官(可能是你面试职位的直接领导),会考虑我要不要这个人做我的同事?所以态度很重要、除了能做事,还要会做人。(感觉更像是相亲( •̣̣̣̣̣̥́௰•̣̣̣̣̣̥̀ )) 资深的前端开发能把absolute和relative弄混,这样的人不要也罢,因为团队需要的是:你这个人具有可以依靠的才能(靠谱)。 前端开发知识点: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack CSS基本功:布局、盒子模型、选择器优先级 HTML5、CSS3、Flexbox JavaScript: 数据类型、运算、对象、Function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Ajax、 DOM、BOM、内存泄漏、跨域、异步装载、模板引擎、前端MVC、路由、模块化、Canvas、ECMAScript 6、Nodejs 其他: 移动端、响应式、自动化构建、HTTP、离线存储、 WEB安全、优化、重构 团队协作、可维护

浏览器内核(Rendering Engine):Trident、Gecko、Presto、KHTML、WebCore、WebKit。

两盒软妹~` 提交于 2020-03-12 08:13:45
浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。 不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。 几种常见的浏览器内核简介: Trident:Windows下的IE浏览器使用的内核代号。除IE外,众多的IE Shell(如 Maxthon)都使用这个内核。 Gecko:Mozilla Firefox浏览器使用的内核代号。使用Gecko内核的浏览器也有不少,如Netscape、MozillaSuite/SeaMonkey等。另外,Mozilla Thunderbird也使用Gecko。 Presto:Opera浏览器使用的内核代号,这是目前公认网页浏览速度最快的浏览器内核。 KHTML/WebCore:Konqueror/Safari浏览器使用的内核代号。Konqueror是X协议下的KDE桌面环境使用的浏览器和资源管理器,可以用在Unix/Linux/BSD系统中,KDE 4.0以后向Windows移植;Safari则是Apple用户中最受欢迎的浏览器。   Trident (又称为MSHTML)

五大主流浏览器及四大内核

╄→尐↘猪︶ㄣ 提交于 2020-03-05 05:36:29
五大主流浏览器及四大内核 只是用户看到仅仅只是浏览器本身,却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwww(Library WorldWideWeb)浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常见的浏览器有:IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、遨游浏览器、世界之窗浏览器等。但目前最为主流浏览器有五大款,分别是IE、Firefox、Google Chrome、Safari、Opera。 浏览器最重要的部分是浏览器的内核。浏览器内核是浏览器的核心,也称“渲染引擎”,用来解释网页语法并渲染到网页上。浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息。不同的浏览器内核对网页的语法解释也不同,因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑

认识浏览器以及浏览器的兼容问题

百般思念 提交于 2020-02-28 10:52:36
一、关于浏览器 (1)现在主流的浏览器有:Internet Explorer、Safari、Mozilla Firefox、 Google Chrome、Opera、百度、360、搜狗、遨游。 (2)最早的浏览器:Mosaic / Netscape Navigator(网景领航者)(1994-2008)简称NN。 浏览器与浏览器之间也会产生矛盾,解决矛盾最好的方法莫过于打一架!在上世纪90年代就爆发了第一次浏览器大战,微软发布了他的IE浏览器,和网景公司的Netscape Navigator浏览器大打出手,取代了网景公司Netscape Navigator在市场的主导地位。甚至还引发了美国诉微软案官司。在20世纪的时候又发生了第二次浏览器大战,Internet Explorer9便是战争的产物! 二、五大浏览器内核 (1)Trident(MSHTML)(三叉戟;三插线;三齿鱼叉) (2)Gecko(壁虎) (3)Presto(迅速的) (4)Webkit(Safari内核,Chrome内核原型,它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核) (5)Blink(由Google和Opera Software开发的浏览器排版引擎) 三、五大浏览器内核代表作品 Trident:IE、Maxthon(遨游)、腾讯、Theworld世界之窗、360浏览器。代表作品IE

第九章客户端检测

强颜欢笑 提交于 2020-02-27 05:01:16
客户端检测 9.1能力检测 只要确定浏览器支持特定的能力,就能给出解决方案 if(object.propertyInQuestion){ } 两个概念:先检测达成目的的最常用的特性;检测实际要用到的特性 9.1.1更可靠的能力检测 尽可能使用typeof进行能力检测 在浏览器环境测试任何对象的某个特性是否存在使用如下函数: function isHostMethod(object, property) { var t = typeof object[property]; return t == 'function' || (!!(t == 'object' && object[property])) || t == 'unknown'; } result = isHostMethod(xhr, "open"); //true result = isHostMethod(xhr, "foo"); //false 9.1.2能力检测不是浏览器检测 最好是一次性检测所有相关特性,而不是分别检测 //确定浏览器是否支持 Netscape 风格的插件 var hasNSPlugins = !!(navigator.plugins && navigator.plugins.length ); //确定浏览器是否具有 DOM1 级规定的能力 var hasDOM1 = !!(document

各浏览器内核

家住魔仙堡 提交于 2020-02-26 10:59:30
Trident(IE内核) Trident: 该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器(壳浏览器)涌现。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。 由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。 补充:IE从版本11开始,初步支持WebGL技术。 补充:IE8的JavaScript引擎是Jscript,IE9开始用Chakra