浏览器WEB Browser



浏览器发展史

浏览器诞生与发展

浏览器的诞生

早期浏览器

Netscape

Internet Explorer 与浏览器战争

chrome的崛起

时代之泪

IE浏览器终成时代之泪,Microsoft Edge 成为Win11默认浏览器

那些同样重要的浏览器

Firefox

opera

Tor

"暗网"

other

UC

Trident + Webkit(Blink)

QQ浏览器

Trident普通模式 + Webkit极速模式

360

Trident兼容模式 + Blink极速模式

搜狗

Trident兼容模式 + Webkit高速模式

猎豹

Trident + Webkit(Blink)

遨游

Trident兼容模式 + Blink极速模式

百度

IE内核

2345

Trident兼容模式 + Blink极速模式

浏览器市场份额

百度统计

w3counter

statcounter

浏览器架构

计算机的核心

三层计算机体系结构

顶部是应用程序

中间是操作系统

底部是机器硬件

CPU

GPU

进程与线程

浏览器的进程/线程架构模型

浏览器进程划分

浏览器进程

渲染进程

插件进程

GPU进程

chrome多进程架构

优点

稳定性:防止一个页面奔溃影响整个浏览器

安全性与沙箱化

共享拷贝

架构变革

站点隔离

浏览器整体架构

用户界面

浏览器引擎

渲染引擎

网络

JavaScript 解释器

用户界面后端

数据存储

求同存异的浏览器架构

浏览器基本原理

常见的JS引擎

Chrome V8

JavaScriptCore

SpiderMonkey: Mozilla的JavaScript引擎,使用 C/C++ 编写

Rhino: Mozilla的开源 JavaScript引擎,使用Java编写

Nashorm: Oracle Java Development Kit(JDK) 8开始内置的JavaScript引擎,使用Java编写

ChakraCore : Microsoft的开源与JavaScript引擎

JerryScript: Samsung开源与JavaScript引擎,被IoT.js使用

Hermes: Facebook开源 JavaScript引擎,为React Native优化

QuickJS: 由FFmpeg作者Fabrice Bellard开发

浏览器与JavaScript

V8 执行一段 JavaScript 的流程

Chrome V8的事件机制

常见浏览器的渲染引擎和JS引擎

延伸阅读

浏览器的不同形态

WebView

Android

Android WebKit WebView基于WebKit

Chromium WebView 基于Chromium

IOS

UIWebView基于WebKit

WKWebView基于WebKit

Headless Browser

Electron

浏览器WEB Browser 常识的更多相关文章

  1. 对于一个网站,如何禁止直接从浏览器Web browser中访问js文件

    比如有一个网站,https://testsystem.infotest.com 在这个网站的内容文件目录下面,有一个scripts文件夹,该文件夹中有一个js文件,比如lukeTest.js文件 这样 ...

  2. 教你如何清除 MyEclipse/Eclipse 中 Web Browser 和 Switch Workspace 的历史记录

    有些许强迫症的开发人员可能会因为 MyEclipse/Eclipse 中 Web Browser 和 Switch Workspace 冗余的历史记录而感到苦恼,下面的方法就可以有效的帮助解决你的痛点 ...

  3. atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结

    atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结 1. 常见标准 1 1.1. 录制重放 1 1.2. 一个窗体一个proxy cookie 1 1.3. exec ...

  4. C#爬虫(02):Web browser控件CefSharp的使用

    一.CefSharp介绍 CEF 全称是Chromium Embedded Framework(Chromium嵌入式框架),是个基于Google Chromium项目的开源Web browser控件 ...

  5. 关于PB调用Microsoft Web Browser控件的一些问题

    Microsoft Web Browser控件是WINDOWS系统自带的控件,一般不需要单独安装,由于工作的需要,把使用中遇到的问题记录一下,以便查阅. 插入控件: 环境为PB12.0,insert- ...

  6. [转]Display PDF within web browser using MVC3

    本文转自:http://www.codeproject.com/Tips/697733/Display-PDF-within-web-browser-using-MVC Introduction I ...

  7. C#彻底解决Web Browser 跨域读取Iframes内容

    C#彻底解决Web Browser 跨域读取Iframes内容 用C# winform的控件web browser 读取网页内容,分析一下数据,做一些采集工作. 如果是同一个域名下面还是好办的,基本上 ...

  8. How To Open An URL In Android’s Web Browser

    How To Open An URL In Android’s Web Browser 以下核心代码片断,将展现使用“android.content.Intent” 打开一个指定的 URL. butt ...

  9. How to open a web site with the default web browser in a NEW window

    http://delphi.about.com/cs/adptips2004/a/bltip0504_4.htm When using ShellExecute (as explained in th ...

随机推荐

  1. 如何下载安装Python

     github博客传送门 csdn博客传送门 如何下载安装python 第一步: 在python的官网下载python版本,需要下载对应版本(在计算机-属性中查看自己是32位操作系统还是64位操作系统 ...

  2. .Net Core with 微服务 - Seq 日志聚合

    上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现.那么本次我们讲会演示如何做日志聚合.日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众 ...

  3. Redis之内存优化

    Redis所有的数据都存在内存中,当前内存虽然越来越便宜,但跟廉价的硬盘相比成本还是比较昂贵,因此如何高效利用Redis内存变得非常重要.高效利用Redis内存首先需要理解Redis内存消耗在哪里,如 ...

  4. 试着给VuePress添加登录授权支持,基于v-dialogs

    背景介绍 VuePress是个不错的能基于Markdown快速构建静态网站的框架,初步来说,对外访问都是透明的. 但是可能因为一些保密需要,有些站点的文档,我们希望控制一下访问,所以我们借着别人的轮子 ...

  5. 2、linux防火墙的使用(firewalld)

    2.1.说明: 1.在 RHEL7 里有几种防火墙共存,firewalld.iptables,默认是使用 firewalld 来管理 netfilter 子系统,不过底层调用的命令仍然是 iptabl ...

  6. Redis主从,集群部署及迁移

    工作中有时会遇到需要把原Redis集群下线,迁移到另一个新的Redis集群的需求(如机房迁移,Redis上云等原因).此时原Redis中的数据需要如何操作才可顺利迁移到一个新的Redis集群呢? 本节 ...

  7. frp+nginx内网穿透

    frp+nginx内网穿透 背景:自己有台内网Linux主机,希望被外网访问(ssh.http.https): 准备工作 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/lin ...

  8. 使用gitlab自带的ci/cd实现.net core应用程序的部署

    这两天在折腾持续集成和交付,公司考虑使用gitlab自带的ci/cd来处理,特此记下来整个流程步骤. 好记性不如一支烂笔头---尼古拉斯-古人言 第一步: 安装gitlab,这个自然不用多说 第二步: ...

  9. Cygwin-OpenSSH配置手册及常见问题解决

    右键管理员方式运行Cygwin-setup-x86_64.exe 选择Install from Local Ddirectory 选择安装路径(默认下一步) 选择依赖库路径 依次配置一下选项 接下来安 ...

  10. actviti7撤回操作

    @Override @Transactional(rollbackFor = Exception.class) public int callBack(String processId) { //通过 ...