WebKit介绍和总结(一)

WebKit介绍和总结(一)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

WebKit介绍和总结(一)此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。

. WebKit 简单介绍

     Webkit 是一个开放源码的浏览器引擎 (web browser engine) ,最初的代码来自 KDE 的 KHTML 和 KJS( 均开放源码 ) 。

苹果公司在 Webkit 的基础上做了大量优化改进工作 。此时的 Apple Webkit 已经和 Webkit 有了不少区别,最后开发出了著名的 Safari 。能够说 Safari 是一个相当成功的产品,可是 Safari 却不是开放源码的。

基于 WebKit 的浏览器产品有:苹果的 Safari 和 iPhone , Google 的 Chrome 和 Android , Nokia 的 S60 ,傲游 3(Maxthon3) ;

WebKit 眼下支持 HTML4/5 CSS1/2 DOM1/2 HTTP/FILE GIF/JPEG/PNG XML SVG RSS2.0 等;

同类的浏览器引擎有: Trident ( IE 内核), Gechko ( Netscape, Mozilla 和 Firefox 内核)。 Presto ( Opera 内核,不免费), Tasman ( IE for MAC 内核)。等等,而 WebKit 由于其功能强大、速度快并且免费备受欢迎。

. 用到的库:
  
除了平台相关的库。 WebKit 须要用到的一些基本的后台库有:

  • ICU : International Components for Unicode 。 一个成熟。广泛使用的一套为 C / C + +Java 库提供 Unicode 的 全球化支持软件;

  • XSLT : eXtensible Stylesheet Language Transformation, W3C 定义的用于 XML 文档转换的规范;

  • Curl : 一个利用 URL 语法的命令行传输数据工具。基于 libcurl

  • Sqlite : SQLite 是实现了 SQL92 标准的 SQL 数据库引擎,它能在一个库里组合数据库引擎和接口 , 将全部数据存储于单个文件 。

  • Gperf :一个非常完美的哈希函数生成器。

  • Flex : Fast Lex, 高速词法分析生成器;

  • Bison :语法分析生成器,能够将一段带凝视的上下文无关语法转化成 LALR 或 GLR 语法。

  • Enchant :一个拼写检查库,提供单词的拼写检查、纠错等功能;

. 代码文件夹结构

  • WebKitTools
    一些測试 WebKit 实现功能的程序;

  • WebKitLibraries
    WebKit 用到的库以及系统调用接口定义。

  • WebKitExamplePlugins
    一些来自 Netscape 的插件,比方输入法、动画和 Cocoa 环境等。

  • WebKitSite: 保存了 www.webkit.org 站点的

  • WebKit
    此文件夹位于 WebKit 的最上层,定义了与应用相关的一些接口。因此它是平台相关的。每一个子文件夹都是相应平台的完整实现:

  • cf : Core Foundation, MAC OS X 上的系统级 C 语言 API 接口。

  • win : Windows 。

  • mac : MAC OS X 。

  • qt : Q Toolkit 。其公司已被 Nokia 收购。

  • gtk : Gimp Toolkit ;

  • scripts :一些脚本。眼下仅仅有一个关于 WebKit 版本号的脚本程序。

  • chromium : Google Chrome 开发平台。

  • wx : wxWindows ,一种可移植的 C++ 和 Python GUI 工具箱。 by Julian Smart 。

  • haiku :一种开源 OS ,从 BeOS 而来, 2001 開始, 2009 公布首版。

  • efl: Enlightenment Foundation Libraries, Enlightenment 平台。
    WebCore
    WebKit 的核心部分,定义了浏览相关的数据 IO 、页面载入、脚本分析、 UI 组织、事件处理、网络分析、平台相关的详细实现等内容。

  • xml :提供 xml 相关的内容;
  • html :提供 html 相关的内容。其下的 Canvas 文件夹定义了 3D 画布以及 WebGL 库相关的内容。
  • wml: Wireless Markup Language 。
  • css :提供 css 相关的内容;
  • dom :提供 dom 相关的内容。
  • editing :编辑相关的功能;
  • page :浏览相关内容。并不是是我们看到的一个页面。在一次浏览会话中,它仅仅有一个实例;
  • rendering :页面渲染相关的内容,在对页面脚本进行 DOM 树分析之后。须要对这些元素进行渲染和显示;
  • notification :内部模块间的事件通信。
  • history :页面浏览历史记录相关的内容。
  • svg :矢量图形功能。有选项, –svg ;
  • mathml : W3C 为网页中的数学表达式制定的规范。有编译选项, –mathml ;
  • loader : 载入资源及 Cache
  • workers :“ Web Workers WEB 前端网页上的脚本提供了一种能在后台进程中执行的方法。

    一旦它被创建, Web Workers 就能够通过 postMessage() 向任务池发送任务请求。运行完之后再通过 postMessage() 返回消息给创建者指定的事件处理 程序 ( 通过 onmessage 进行捕获 )
    Web Workers
    进程可以在不影响用户界面的情况下处理任务,而且。它还可以使用 XMLHttpRequest 来处理 I/O 。不管 responseXML channel 属性是否为 null 。”

  • storage : Web Storage 相关的内容,保存页面的数据,能够看成是 Cookie 的升级;
  • websockets :与网络连接相关的内容。
  • bridge: 主要包括 NPPlugin(Netscape Plugin) 方面的接口訪问等内容;
  • binding : Dom 与 JavaScriptCore 绑定的功能。
  • accessibility :提供控件的可用性相关的内容。 accessibility 经常使用来形容对一些特殊人群的功能支持,比方残障者、老人等;
  • icu :里面放了专门为 Mac OS X 10.4 编译的 icu 相关头文件 。
  • platform :提供了平台相关的详细实现,如事件响应、本地化、网络连接等;
  • plugins :插件相关内容。
  • ForwardingHeaders :头文件。
  • inspector : Inspector 是 WebKit 提供的查看网页源码, DOM 树。以及调试脚本的工具,本文件夹包括了实现此功能的内容;
  • Configurations : X Code 环境相关的配置文件;
  • English.lproj :本地化文件。
  • manual-tests :測试用的 html 文件。
  • Resources :资源,图标。
  • WebCore.gyp :project文件。

    GYP ( Generate Youre Project )是 google 自己开发了一个脚本工具。这个工具也 是採用 python 编写的。

    它採用了自己定义的一套规则,用于生成各种project文件。

  • WebCore.vcproj : VC project文件;
  • WebCore.xcodeproj : X Code project文件;
  • WTF : Apple 的 C++ 库。能够看作精简的 STL 。 SunSpider
  • 一个 JavaScript 的检測程序,它不检測 DOM 或者浏览器其它的 API 。仅仅用来检測 Javascript 。

  • JavaScriptGlue

  • JavaScriptCore :有关 JavaScript 的相关内容。包含了脚本解释器、分析器以及运行程序。

  • PlanetWebkit: 一个比較灵活的 RSS 阅读器。 Webkit 站点上的 Planet :一站式的 Webkit 开发与动态信息;

. 体系结构

WebKit 主要包含三部分: WebKit , WebCore 。以及 JavaScriptCore ,加上所使用的库,依托的平台。其主要的体系结构 (Architecture) 例如以下所看到的:



WebKit介绍和总结(一)


请注意,某些模块,该模块如下突出。这是因为,此模块具有以下模块直接相关。例 WebCore 模块JavaScriptCore 、 Libraries 和 Platforms 模块是直接关系到。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117870.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ⭐️UI自动化控制微信发送或转发图片消息✨

    ⭐️UI自动化控制微信发送或转发图片消息✨在前面《UI自动化轻松解决微信手工群发消息的烦恼》一文中,我演示了如果使用python发送文本消息。前段时间有群友询问:虽然之前觉得太简单懒得做,但今天周末又想起这个问题,考虑到很多网友不知道如何实现,所以我今天再简单演示一下。uiautomation控制微信发送图片????其实原理非常简单,之前无非是将需要发送的文本复制到剪切板再粘贴,那么其实对于图片也一样,我们只需要将需要发送的图片放入剪切板即可,其他地方逻辑都一样。那么如何将图片放入剪切板呢?uiautomation已经提供了SetCli

  • Springboot和Spring的区别?看完你就明白了

    Springboot和Spring的区别?看完你就明白了从一道面试题说起面试的时候经常会被问到,spring和springboot的区别。或者SpringMVC和Springboot的区别。其实这样的问法就不是特别合适。因为spring、springboot、springmvc他们三个在spring体系中就不在同一个维度。看一下spring的全部项目spring家族有很多项目,springboot、springframework、springcloud等。我们常用的也就是,springboot、springcloud、springsecu

  • Navicat激活码在线生成(破解版激活)

    Navicat激活码在线生成(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 新手必备webstorm安装教程

    新手必备webstorm安装教程接下来我们看一下webstorm的安装1.首先下载webstrom安装包这个安装包在网上很好找点击.exe文件激活成功教程为长期有效的webstrom/IDEAlicenseserver20181.复制下方activationcode,直接粘贴在webstorm的activationcode栏上,切记先不要点ok,切记先不要点ok,切记先不要点ok,等第二步执行完…

  • java中byte的用法_nt宫颈长度多少是正常

    java中byte的用法_nt宫颈长度多少是正常1.概念JavaNIOAPI自带的缓冲区类功能相当有限,没有经过优化,使用JDK的ByteBuffer操作更复杂。故而Netty的作者TrustinLee为了实现高效率的网络传输,重新造轮子,Netty中的ByteBuf实际上就相当于JDK中的ByteBuffer,其作用是在Netty中通过Channel传输数据。2.优势可以自定义缓冲类型;通过内置的复合缓冲类型,实现透明的零拷贝(ze…

  • Oracle listagg去重distinct三种方法总结

    Oracle listagg去重distinct三种方法总结一、简介最近在工作中,在写oracle统计查询的时候,遇到listagg聚合函数分组聚合之后出现很多重复数据的问题,于是研究了一下listagg去重的几种方法,以下通过实例讲解三种实现listagg去重的方法。二、方法首先还原listagg聚合之后出现重复数据的现象,打开plsql,执行如下sql:selectt.department_namedepname,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号