日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

WebKit介绍及总结(一)

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebKit介绍及总结(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

. WebKit 簡(jiǎn)介

???? Webkit 是一個(gè)開(kāi)放源代碼的瀏覽器引擎 (web browser engine) ,最初的代碼來(lái)自 KDE 的 KHTML 和 KJS( 均開(kāi)放源代碼 ) 。蘋果公司在 Webkit 的基礎(chǔ)上做了大量?jī)?yōu)化改進(jìn)工作 ,此時(shí)的 Apple Webkit 已經(jīng)和 Webkit 有了不少差別,最后開(kāi)發(fā)出了著名的 Safari ,可以說(shuō) Safari 是一個(gè)相當(dāng)成功的產(chǎn)品,但是 Safari 卻不是開(kāi)放源代碼的。

基于 WebKit 的瀏覽器產(chǎn)品有:蘋果的 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 內(nèi)核), Gechko ( Netscape, Mozilla 和 Firefox 內(nèi)核), Presto ( Opera 內(nèi)核,不免費(fèi)), Tasman ( IE for MAC 內(nèi)核),等等,而 WebKit 因?yàn)槠涔δ軓?qiáng)大、速度快而且免費(fèi)備受歡迎。

. 用到的庫(kù):
??
除了平臺(tái)相關(guān)的庫(kù), WebKit 需要用到的一些主要的后臺(tái)庫(kù)有:

  • ICU : International Components for Unicode , 一個(gè)成熟,廣泛使用的一套為 C / C + +Java 庫(kù)提供 Unicode 的 全球化支持軟件;

  • XSLT : eXtensible Stylesheet Language Transformation, W3C 定義的用于 XML 文檔轉(zhuǎn)換的規(guī)范;

  • Curl : 一個(gè)利用 URL 語(yǔ)法的命令行數(shù)據(jù)傳輸工具,基于 libcurl

  • Sqlite : SQLite 是實(shí)現(xiàn)了 SQL92 標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)庫(kù)引擎,它能在一個(gè)庫(kù)里組合數(shù)據(jù)庫(kù)引擎和接口 , 將所有數(shù)據(jù)存儲(chǔ)于單個(gè)文件 ;

  • Gperf :一個(gè)很完美的哈希函數(shù)生成器;

  • Flex : Fast Lex, 快速詞法分析生成器;

  • Bison :語(yǔ)法分析生成器,可以將一段帶注釋的上下文無(wú)關(guān)語(yǔ)法轉(zhuǎn)化成 LALR 或 GLR 語(yǔ)法;

  • Enchant :一個(gè)拼寫檢查庫(kù),提供單詞的拼寫檢查、糾錯(cuò)等功能;

. 代碼目錄結(jié)構(gòu)

  • WebKitTools
    一些測(cè)試 WebKit 實(shí)現(xiàn)功能的程序;

  • WebKitLibraries
    WebKit 用到的庫(kù)以及系統(tǒng)調(diào)用接口定義;

  • WebKitExamplePlugins
    一些來(lái)自 Netscape 的插件,比如輸入法、動(dòng)畫(huà)和 Cocoa 環(huán)境等;

  • WebKitSite: 保存了 www.webkit.org 網(wǎng)站的

  • WebKit
    此目錄位于 WebKit 的最上層,定義了與應(yīng)用相關(guān)的一些接口,因此它是平臺(tái)相關(guān)的,每個(gè)子目錄都是對(duì)應(yīng)平臺(tái)的完整實(shí)現(xiàn):

  • cf : Core Foundation, MAC OS X 上的系統(tǒng)級(jí) C 語(yǔ)言 API 接口;

  • win : Windows ;

  • mac : MAC OS X ;

  • qt : Q Toolkit ,其公司已被 Nokia 收購(gòu);

  • gtk : Gimp Toolkit ;

  • scripts :一些腳本,目前只有一個(gè)關(guān)于 WebKit 版本的腳本程序;

  • chromium : Google Chrome 開(kāi)發(fā)平臺(tái);

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

  • haiku :一種開(kāi)源 OS ,從 BeOS 而來(lái), 2001 開(kāi)始, 2009 發(fā)布首版;

  • efl: Enlightenment Foundation Libraries, Enlightenment 平臺(tái);
    WebCore
    WebKit 的核心部分,定義了瀏覽相關(guān)的數(shù)據(jù) IO 、頁(yè)面加載、腳本分析、 UI 組織、事件處理、網(wǎng)絡(luò)分析、平臺(tái)相關(guān)的具體實(shí)現(xiàn)等內(nèi)容。

  • xml :提供 xml 相關(guān)的內(nèi)容;
  • html :提供 html 相關(guān)的內(nèi)容;其下的 Canvas 目錄定義了 3D 畫(huà)布以及 WebGL 庫(kù)相關(guān)的內(nèi)容;
  • wml: Wireless Markup Language ;
  • css :提供 css 相關(guān)的內(nèi)容;
  • dom :提供 dom 相關(guān)的內(nèi)容;
  • editing :編輯相關(guān)的功能;
  • page :瀏覽相關(guān)內(nèi)容,并非是我們看到的一個(gè)頁(yè)面,在一次瀏覽會(huì)話中,它只有一個(gè)實(shí)例;
  • rendering :頁(yè)面渲染相關(guān)的內(nèi)容,在對(duì)頁(yè)面腳本進(jìn)行 DOM 樹(shù)分析之后,需要對(duì)這些元素進(jìn)行渲染和顯示;
  • notification :內(nèi)部模塊間的事件通信;
  • history :頁(yè)面瀏覽歷史記錄相關(guān)的內(nèi)容;
  • svg :矢量圖形功能,有選項(xiàng), --svg ;
  • mathml : W3C 為網(wǎng)頁(yè)中的數(shù)學(xué)表達(dá)式制定的規(guī)范;有編譯選項(xiàng), --mathml ;
  • loader : 加載資源及 Cache
  • workers :“ Web Workers WEB 前端網(wǎng)頁(yè)上的腳本提供了一種能在后臺(tái)進(jìn)程中運(yùn)行的方法。一旦它被創(chuàng)建, Web Workers 就可以通過(guò) postMessage() 向任務(wù)池發(fā)送任務(wù)請(qǐng)求,執(zhí)行完之后再通過(guò) postMessage() 返回消息給創(chuàng)建者指定的事件處理 程序 ( 通過(guò) onmessage 進(jìn)行捕獲 )
    Web Workers
    進(jìn)程能夠在不影響用戶界面的情況下處理任務(wù),并且,它還可以使用 XMLHttpRequest 來(lái)處理 I/O ,無(wú)論 responseXML channel 屬性是否為 null 。”
  • storage : Web Storage 相關(guān)的內(nèi)容,保存頁(yè)面的數(shù)據(jù),可以看成是 Cookie 的升級(jí);
  • websockets :與網(wǎng)絡(luò)連接相關(guān)的內(nèi)容;
  • bridge: 主要包含 NPPlugin(Netscape Plugin) 方面的接口訪問(wèn)等內(nèi)容;
  • binding : Dom 與 JavaScriptCore 綁定的功能;
  • accessibility :提供控件的可用性相關(guān)的內(nèi)容, accessibility 常用來(lái)形容對(duì)一些特殊人群的功能支持,比如殘障者、老人等;
  • icu :里面放了專門為 Mac OS X 10.4 編譯的 icu 相關(guān)頭文件 ;
  • platform :提供了平臺(tái)相關(guān)的具體實(shí)現(xiàn),如事件響應(yīng)、本地化、網(wǎng)絡(luò)連接等;
  • plugins :插件相關(guān)內(nèi)容;
  • ForwardingHeaders :頭文件;
  • inspector : Inspector 是 WebKit 提供的查看網(wǎng)頁(yè)源代碼, DOM 樹(shù),以及調(diào)試腳本的工具,本目錄包含了實(shí)現(xiàn)此功能的內(nèi)容;
  • Configurations : X Code 環(huán)境相關(guān)的配置文件;
  • English.lproj :本地化文件;
  • manual-tests :測(cè)試用的 html 文件;
  • Resources :資源,圖標(biāo);
  • WebCore.gyp :工程文件。 GYP ( Generate Youre Project )是 google 自己開(kāi)發(fā)了一個(gè)腳本工具,這個(gè)工具也 是采用 python 編寫的。它采用了自定義的一套規(guī)則,用于生成各種工程文件;
  • WebCore.vcproj : VC 工程文件;
  • WebCore.xcodeproj : X Code 工程文件;
  • WTF : Apple 的 C++ 庫(kù),可以看作精簡(jiǎn)的 STL ; SunSpider
  • 一個(gè) JavaScript 的檢測(cè)程序,它不檢測(cè) DOM 或者瀏覽器其他的 API ,只用來(lái)檢測(cè) Javascript 。
  • JavaScriptGlue

  • JavaScriptCore :有關(guān) JavaScript 的相關(guān)內(nèi)容,包括了腳本解釋器、分析器以及執(zhí)行程序;

  • PlanetWebkit: 一個(gè)比較靈活的 RSS 閱讀器; Webkit 網(wǎng)站上的 Planet :一站式的 Webkit 開(kāi)發(fā)與動(dòng)態(tài)信息;

. 體系結(jié)構(gòu)

WebKit 主要包括三部分: WebKit , WebCore ,以及 JavaScriptCore ,加上所使用的庫(kù),依托的平臺(tái),其基本的體系結(jié)構(gòu) (Architecture) 如下所示:




注意有的模塊相對(duì)于下面的模塊有突出,這是因?yàn)榇四K與下面幾個(gè)模塊直接相關(guān),比如 WebCore 模塊就與JavaScriptCore 、 Libraries 和 Platforms 模塊直接相關(guān)。

?

總結(jié)

以上是生活随笔為你收集整理的WebKit介绍及总结(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。