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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转载: WebKit介绍及总结(一)

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转载: 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 :工程文件。?GYP?( Generate Youre Project )是 google 自己開發了一個腳本工具,這個工具也 是采用 python 編寫的。它采用了自定義的一套規則,用于生成各種工程文件;
  • WebCore.vcproj : VC 工程文件;
  • WebCore.xcodeproj : X Code 工程文件;
  • WTF : Apple 的 C++ 庫,可以看作精簡的 STL ; SunSpider
  • 一個 JavaScript 的檢測程序,它不檢測 DOM 或者瀏覽器其他的 API ,只用來檢測 Javascript 。
  • JavaScriptGlue

  • JavaScriptCore :有關 JavaScript 的相關內容,包括了腳本解釋器、分析器以及執行程序;

  • PlanetWebkit: 一個比較靈活的 RSS 閱讀器; Webkit 網站上的 Planet :一站式的 Webkit 開發與動態信息;

?.?體系結構

WebKit 主要包括三部分: WebKit , WebCore ,以及 JavaScriptCore ,加上所使用的庫,依托的平臺,其基本的體系結構 (Architecture) 如下所示:




注意有的模塊相對于下面的模塊有突出,這是因為此模塊與下面幾個模塊直接相關,比如 WebCore 模塊就與JavaScriptCore 、 Libraries 和 Platforms 模塊直接相關。

總結

以上是生活随笔為你收集整理的转载: WebKit介绍及总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。