JavaScript与浏览器

浏览器的内核

五大主流浏览器 内核
IE trident
Chrome webkit blink
Safari webkit
FireFox gecko
Opera presto

PS: Chrome和Safari合作开发了webkit,后来谷歌单干用webkit的内核开发了blink,两者可以说是一个东西。

浏览器的历史和JS诞生

  1. 1990年12月25日,万维网的发明者蒂姆·伯纳斯·李(Tim Berners-Lee)和罗伯特·卡里奥在CERN一起成功通过Internet实现了HTTP代理与服务器的第一次通讯。

  2. 1991年和1992年,蒂姆·伯纳斯·李和CERN的一名学生扬·弗朗索瓦·格罗夫利用便携式C代码重写了NeXTSTEP操作系统的原始WorldWideWeb浏览器的各种组件,用于展示万维网的潜能。

  3. 1993年,美国伊利诺州的[伊利诺大学的NCSA组织,发表了第一个可以显示图片的浏览器,命名为─「MOSAIC」,在当时人气爆发的大受欢迎,Mosaic的出现,算是点燃后来因特网热潮的火种之一。在1993年1月,NCSA(National Center for Supercomputing Applications,美国国家超级电脑应用中心)完成革命性的创新,在Unix平台上开发出了第一个图形化的网页浏览器Mosaic(Alpha 版),同年九月发布的1.0正式版实现了在Apple Macintosh和Microsoft Windows平台上的运行,一时间Mosaic俨然成为Web浏览器的标准。随后NCSA将Mosaic的商业运营权转售给了Spyglass公司,该公司又向包括微软公司在内的多家公司技术授权,允许其在 Mosaic的基础上开发自己的产品。

  4. 1994年,Mosaic研发的核心成员马克·安德森(Marc Andreessen)和几何图形发生器的发明人吉姆·克拉克(Jim.H.Clark)共同创立了Mosaic Communication Corporation。同年11月为了避免与NCSA的法律纠葛,公司更名为Netscape Communication Corporation即网景公司,并一直沿用。在二人领导下,公司合力进行超越以往浏览器的新一代浏览器的研发,试图打破Mosaic的垄断并取得业界的领导地位。所以对新浏览器名为 Netscape Navigator,即“导航者”。对内其1.0版本的研发代号则为Mozilla!Mozilla一词是由“Mosaic Killa”(Mosaic杀手/终结者,Killa是俚语中Killer的拼法)和“Godzilla eat the Mosaic”(Godzilla,即“哥斯拉”,日本遭受核打击和“第五福龙丸”事件后创造的经典虚拟生物)合成而来。即Mosaic+Godzilla+Killa=Mozilla!网景公司员工也常将其称作Moz或Mozzie。

  5. 1995年,为抢占网景的市场份额,微软和Spyglass公司合作,获得了Spyglass Mosaic的源代码授权,迅速发布了第一代IE浏览器(Internet Explorer 1.0),拉开了浏览器大战的序幕。为了打压网景,比尔·盖茨发了一封公司内部邮件:**“让我们切断他们 (网景浏览器) 的氧气,碾碎他们(Let’s take away their oxygen supply and crush them)”。**微软通过这一系列不讲武德的行为,迅速占领了浏览器市场75%的份额,网景公司急剧衰败。Netscape也试过起诉微软垄断,但是最终还是被财大气粗的微软给干翻了,1999年就因濒临破产被美国在线(AOL)收购了。这里插一句,微软能躲过因反垄断而被拆分这一劫,还得靠钞能力。2000年正值美国大选,微软为总统候选人小布什捐献了460万美元的政治献金,仅次于美国电报电话公司,而小布什最终当选并于2001年1月20日就任美国总统。后面的故事大家自己想象。

    LiveScript也即JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript(1995年12月,升阳与网景联合发表了JavaScript)。但实际上它的语法风格与Self及Scheme较为接近。LiveScript 诞生于 Coco,而 Coco 诞生于 CoffeeScript。LiveScript 类似 CoffeeScript,兼容 CoffeeScript 大部分语法。

  6. 1996年,JScript 引擎最早包含在了当年发布的 IE3 中,是微软根据 JavaScript 语言标准 ECMAScript 实现的 JS 方言。

  7. 2001年,微软发布了IE6(Internet Explorer 6)浏览器。IE6从渲染引擎里将处理JavaScript的部分剥离出来形成一个单独的引擎——JS引擎。

  8. 2003年7月15日,当美国在线(AOL,网景母公司)完全地从Mozilla组织中撤出后,Mozilla基金会成立了,它的目的是保证Mozilla可以在没有网景以后能继续生存下去。美国在线帮助了Mozilla基金会的成立,它向基金会转移了硬件和知识产权,并且在最初的3个月里雇用了一个3人小组来帮助这次过渡。美国在线并且承诺在2年时间内捐助200万美元给基金会。在2005年8月3日,Mozilla基金会建立了一个完全拥有的子公司叫Mozilla公司来继续开发和发布Mozilla Firefox**(传承网景浏览器代码的后裔)**和Mozilla Thunderbird。Mozilla公司承担软件发行的计划,市场和一些软件分发相关的活动。它也处理一些商业合作,很多这些合作都带来收入。不像Mozilla基金会,Mozilla公司是一个应税实体,这给它在追逐收益以及其他商业活动带来了更多自由。

  9. 2008年9月2日,谷歌上线了Google Chrome网页浏览器(包含第一个版本的V8 JavaScript引擎),该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。2013年4月份,Google宣布称将为Chrome浏览器开发新的自主浏览器引擎Blink,2013年7月在最新的Chrome开发版本中,Blink已经正式现身。

  10. 2009年,甲骨文(Oracle)收购了Sun公司,JavaScript也同时转移成为甲骨文公司的注册商标。

相关字典

  • Internet

因特网,因特网是一组全球信息资源的总汇。有一种粗略的说法,认为Internet是由许多小的网络(子网)互联而成的一个逻辑网,每个子网中连接着若干台计算机(主机)。它连接着所有的计算机,人们可以通过搜索引擎从互联网(internet)上面找到不同的信息。

  • WWW

万维网,万维网是World Wide Web的简称,也称为Web、3W等。WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过超文本标记语言(HTML)把信息组织成为图文并茂的超文本,利用超链接从一个站点跳转到另一个站点。

另外它还是存储在Internet计算机中、数量巨大的文档的集合。这些文档称为页面,它是一种超文本信息可以用与描述超媒体。文本、图形、视频、音频等多媒体,称为超媒体。Web上的信息是由彼此关联的文档组成的,而使其连接在一起的是超链接。

  • Libwww

Libwww(Library World Wide Web),是一个高度模块化客户端的网络应用程序接口,用C语言写成,可在UNIX操作系统和Windows操作系统上运行。

蒂姆·伯纳斯·李 在 1992 年十一月创造出了 Libwww,用于展示网际网路的潜能。使用 Libwww 的应用程式,如被广泛使用的命令列文字浏览器 Lynx 及 Mosaic web browser 即是用 Libwww 所写成的。

  • Mosaic浏览器

NCSA Mosaic,或简称Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。它是由伊利诺伊大学厄巴纳-香槟分校的NCSA组织在1993年所发表。并于1997年1月7日正式终止开发和支持。在当时人气爆发的大受欢迎。Mosaic的出现,算是点燃了后期互联网热潮的火种之一。后来网景导航者浏览器的开发工作,聘用了许多原有的Mosaic浏览器工程师,但是没有采用Mosaic网页浏览器的任何代码。传承网景浏览器代码的后裔为Firefox浏览器。

事实上, Mosaic 并不是第一个具有图形界面的网页浏览器,但是, Mosaic 是第一个被人普遍接受的浏览器,它让许多人了解了Internet 。

  • Firefox

Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx),是一个由Mozilla开发的自由及开放源代码的网页浏览器。其使用Gecko排版引擎,支持多种操作系统,如Windows、macOS及GNU/Linux等。

该项目定名时几经波折。项目最初取名“Phoenix”(Phoenix首个版本0.1于2002年9月23日发布),但因为和凤凰科技(Phoenix Technologies)的名称冲突,于是于2003年4月14日改为“Firebird”。后来,这个新名称又与另一个开源的数据库系统Firebird发生了冲突,Firebird的开发社区要求以全称“Mozilla Firebird”来标识这个项目或重命名,避免混淆。

2004年2月9日,Mozilla Firebird决定改称Mozilla Firefox,简称Firefox [9] ,正式缩写为Fx或fx,不过仍然常被称作FF(FireFox)。Firefox在英文俗语里指的是“红熊猫”,但开发小组却采用将“Fire”和“fox”分开来直译蕴意,把吉祥物及官方图标都设计为火红的小狐狸。

  • Gears

Gears,原称Google Gears,是一款Google开发的软件,让使用者可以离线上网,但目前仍处于beta阶段。这套软件透过SQLite 数据库让本地端能够把资料暂存起来。所以网页是透过暂存区取得的,而不是从实际的网络上取得。而且,Web 相关的程式可以周期性的透过 Gears 将本地暂存的资料与网络上的资料做同步。如果网络暂时无法使用,这个同步过程将会延后,直到网络恢复为止。因此,Gears 的 Web 相关应用并不是即时的。Gears是一个自由和开源软件,以BSD 许可证发布。Google已经停止对gears的开发,现在全面转向html5的发展。

  • V8(JavaScript引擎)

Lars Bak是这个项目的组长,该JavaScript引擎已用于其它项目的开发。第一个版本随着第一个版本的Chrome于2008年9月2日发布。V8使用C++开发,并在谷歌浏览器中使用。在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如内联缓存(inline caching)等方法来提高性能。有了这些功能,JavaScript程序在V8引擎下的运行速度媲美二进制程序。**V8可以独立运行,也可以 嵌入 到任何C++应用程序。**项目托管在Google Code上,基于BSD协议,任何组织或个人可以将其源码用于自己的项目中。

  • Ecma国际

Ecma国际(Ecma International)是一家国际性会员制度的信息和电信标准组织。1994年之前,名为欧洲计算机制造商协会(European Computer Manufacturers Association)。因为计算机的国际化,组织的标准牵涉到很多其他国家,因此组织决定改名表明其国际性。现名称已不属于首字母缩略字。

组织在1961年的日内瓦建立为了标准化欧洲的计算机系统。在欧洲制造、销售或开发计算机和电信系统的公司都可以申请成为会员。

  • JavaScript

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。

JavaScript最初由Netscape的Brendan Eich设计,最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。**JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自Self和Scheme。**JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。微软同时期也推出了JScript来迎战JavaScript的脚本语言。

发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript),两者都属于ECMAScript的实现,尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。

**JavaScript是甲骨文公司的注册商标。**Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程(Node.js)。

JavaScript与浏览器相关推荐

  1. javascript与浏览器学习(一)

    待学习----     20160421 标题:JavaScript中浏览器兼容问题  博客地址:http://www.cnblogs.com/DF-fzh/p/5408241.html     简单 ...

  2. 分针网——Javascript不同浏览器差异及兼容方法

    Javascript不同浏览器差异及兼容方法 javascript的各种兼容就是为了解决不同浏览器的差异性,了解其中的差异能够帮助你更快的解决问题,提高代码的使用质量,编写更优秀的javascript ...

  3. JavaScript判断浏览器类型及版本

    JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...

  4. JavaScript调用浏览器里的websocket,如何多帧上行数据

    JavaScript调用浏览器里的websocket,如何多个后续帧上行数据?这个组合帧的目的是什么?什么场景会用到?这个帧和http中的chunked编码有是不是一个意思?

  5. Javascript 获取浏览器窗口中文档(视口)可用尺寸的方法

    摘要: 由于浏览器的差异,许多信息的获取都要考虑兼容性,窗口中文档可用尺寸是一个经常需要用到的信息,由于浏览器不同甚至版本不同,获取的方法也不一样,本文介绍的函数能够兼容各种浏览器,获取这一信息.同时 ...

  6. JavaScript判断浏览器类型及版本(新增谷歌的Chrome)

    来源:http://blog.tripdev.com/?tid=164 JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript ...

  7. javascript的浏览器Bom详解,window、location、history对象

           BOM(BrowserObjectModel)也叫浏览器对象模型,描述与浏览器进行交互的方法和接口.BOM由多个对象组成, 其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对 ...

  8. JavaScript多浏览器兼容

    Javascript 多浏览器兼容 一.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName. ...

  9. javascript检测浏览器类型和版本号(兼容各浏览器)

    代码  1 from: http://www.webreference.com/tools/browser/javascript.html  2 http://browserspy.dk/browse ...

  10. html判断是否在微信里打开,JavaScript判断浏览器内核,微信打开自动提示在浏览器打开...

    微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器.网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下.我们今天只讨论通过 JavaScript 判断是否在微信浏 ...

最新文章

  1. 如何使用Jenkins持续集成C#网站项目
  2. 美团、饿了么,你凭什么让我多等几分钟?
  3. 最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)
  4. Rancher中的服务升级实验
  5. 路由总结之静态、RIP、OSPF、IS-IS、BGP和策略路由
  6. Win10 中将网页转换成pdf的简便方法
  7. Python之旅:集合
  8. MySQL索引优化的几种方式
  9. java中继承applet类_Java - 33 Java Applet基础
  10. 自定义一个python日志类
  11. C-ECAP认证规则说明
  12. 金融风控-贷款违约预测项目记录
  13. MATLAB 最小二乘法
  14. 宝贝流量高转化率低怎么办,如何提高宝贝转化率
  15. 蓝桥杯Java必备基础知识总结大全【3W字】持续更新中
  16. d3.js画柱状图超详细教程
  17. 开始甲骨文培训了,第一天说了一下上课学习规矩及计算机基础
  18. 政务外网部署 minio上传下载报错 javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
  19. python官网 中文版-python .. 官方教程中文版.pdf
  20. 美团网退款存漏洞,43人诈骗200万判刑12年

热门文章

  1. 无损检测技术之医用超声基础
  2. Android mvp 架构的自述
  3. Computer:路由器连接交换机怎么建立局域网
  4. 施乐7855维修手册中文版_GE苏伊士MK-2EPHARM EDI模块维修、清洗、注意事项
  5. STM32F103系列控制的OLED IIC 4针
  6. FlashFXP使用阿里云ECS私钥登录
  7. Linux下视频流媒体直播服务器搭建详解
  8. 用户生命周期分析全攻略
  9. 【常用办公软件有那些】万彩办公大师教程丨屏幕放大镜的使用
  10. 彻底格式化系统启动U盘(基于win10)