01.JavaScript浏览器发展史

JavaScript浏览器发展史

Web发展史

  1. Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。于1993年问世。

  2. 1994年4月,马克.安德森和Silicon Graphics(简称为 SGl,中译为“视算科技"或“硅图")公司的创始人吉姆·克拉克(Jim Clark)在美国加州设立了“Mosaic Communication Corporation”。

  3. Mosaic公司成立后,由于伊利诺伊大学拥有Mosaic的商标权,且伊利诺伊大学已将技术转让给Spy Glass公司,开发团队必须彻底重新撰写浏览器程式码,且浏览器名称更改为Netscape Navigator,公司名字于1994年11月改名为“Netscape Communication Corporation”,此后沿用至今,中译为“网景”。微软的Internet Explorer及Mozilla Firefox等,其早期版本皆以Mosaic为基础而开发。微软随后买下Spy Glass公司的技术开发出Internet Explorer浏览器,而Mozilla Firefox则是网景通讯家开放源代码后所衍生出的版本。

JS历史

  1. JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年。它最初的设计目标是改善网页的用户体验。

  2. 作者:Brendan Eich

  3. 期初JavaScript被命名为,LiveScript,后因和Sun公司合作,因市场宣传需要改名JavaScript。后来Sun公司被Oracle收购,JavaScript版权归Oracle所有。

浏览器组成

主流浏览器内核
IEtrident
chromewebkit/blink(blink04年已消失)
firefoxGecko
0perapresto
Safariwebkit

百度、搜狗、360、UC、QQ浏览器等不是主流浏览器是因为没有自己的内核。

  1. shell部分

  2. 内核部分(看不到的,处理代码的部分。中国没有自己的内核)

    绘制网页的过程,从上往下

内核部分 = { 渲染引擎(语法规则和渲染 ) j s 引擎 其他模块 内核部分= \begin{cases} 渲染引擎(语法规则和渲染)\\ js引擎\\ 其他模块 \end{cases} 内核部分= 渲染引擎(语法规则和渲染)js引擎其他模块

js引擎

  1. 2001年发布ie6,首次实现对js引擎的优化和分离。

  2. 2008年Google发布最新浏览器Chrome,它是采用优化后的javascript引擎,引擎代号V8,因能把js代码直接转化为机械码来执行,进而以速度快而闻名。

  3. 后Firefox也推出了具备强大功能的js引擎

  4. Firefox3.5 TraceMonkey (对频繁执行的代码做了路径优化)

  5. Firefox4.0 JeagerMAonkey

js的逼格

  1. 解释型语言—(不需要编译成文件)跨平台

  2. 单线程

  3. ECMA标注—为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格JavaScript兼容于ECMA标准,因此也称为ECMAScript。

翻译分为两种:

  1. 编译型语言:

    通篇翻译(面向对象)(C、C++)

    (比如java生成.java(翻译之后是.class文件)和C生成.obj文件)

    (看完所有代码之后通篇翻译,翻译完之后形成一个翻译完的文件,程序最终执行这个翻译完的文件)

    .java – javac – > 编译–> .class — > jvm --解释执行(java是oak语言)

  2. 解释型语言:

    (面向过程)(javascript、php)

    (看一行翻译一行,翻译一行执行一行。)

  3. 两种翻译各自的优缺点

    通篇编译比较快的原因:抄写是全看完写快还看一个字写一个字快?

    C和C++不能跨平台,Java可以。(win系统生成的文件在Linux或者Mac中不能编译。)
    优缺点 { 编译型语言 ( 面向对象 ) { 优点 : 编译速度快 缺点 : 移植型不好 ( 不跨平台 ) 解释型语言 ( 面向过程 ) { 优点 : 移植型不好 ( 不跨平台 ) 缺点 : 编译速度慢一点点 优缺点 \begin{cases} 编译型语言(面向对象)\begin{cases} 优点:编译速度快\\ 缺点:移植型不好(不跨平台)\\ \end{cases}\\ 解释型语言(面向过程)\begin{cases} 优点:移植型不好(不跨平台)\\ 缺点:编译速度慢一点点\\ \end{cases}\\ \end{cases} 优缺点 编译型语言(面向对象){优点:编译速度快缺点:移植型不好(不跨平台)解释型语言(面向过程){优点:移植型不好(不跨平台)缺点:编译速度慢一点点

线程

线程 { 单线程:同一时间只能做一件事儿 多线程:同一时间可以做多件事儿 线程 \begin{cases} 单线程:同一时间只能做一件事儿\\ 多线程:同一时间可以做多件事儿 \end{cases} 线程{单线程:同一时间只能做一件事儿多线程:同一时间可以做多件事儿

同步-异步

理解 { 计算机里面的同步是生活中的异步。 { 计算机中 { 同步 : 同一时间只能做一件事情 异步 : 同时做很多件事情 ( 同时执行 ) 计算机里面的异步是生活中的同步。 { 生活中 { 同步 : 同时做很多件事情 异步 : 同一时间只能做一件事情 理解 \begin{cases} 计算机里面的同步是生活中的异步。 \begin{cases} 计算机中\begin{cases} 同步:同一时间只能做一件事情\\ 异步:同时做很多件事情(同时执行)\\ \end{cases}\\ \end{cases}\\ 计算机里面的异步是生活中的同步。 \begin{cases} 生活中\begin{cases} 同步:同时做很多件事情\\ 异步:同一时间只能做一件事情\\ \end{cases}\\ \end{cases} \end{cases} 理解 计算机里面的同步是生活中的异步。{计算机中{同步:同一时间只能做一件事情异步:同时做很多件事情(同时执行)计算机里面的异步是生活中的同步。{生活中{同步:同时做很多件事情异步:同一时间只能做一件事情

javascript编译一行执行一行,执行到link标签下载css文件的操作是异步操作。(同时执行)

  1. javascript原生的东西只能进行加减乘除、变量、数组等。

  2. DOM :操作文档

  3. BOM操作浏览器

js执行队列


轮转时间片:类似吃饭
吃一口饭吃一口白菜,再吃一口花菜,直到把饭菜吃完。

把任务一和任务二切成若干个片段,排布顺序完全随机,一个片段一个片段的往javsscript引擎里面送,javascript以一个时间片为一个基准单位去执行这个时间片段,然后把任务一和任务二按照片段执行完。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好学习_fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值