瀏覽器核心Gecko與WebKit

來源:互聯網
上載者:User

標籤:android   io   ar   使用   sp   java   strong   on   代碼   

Webkit 是一個開源的HTML 渲染引擎,由蘋果公司基於 KDE 的 KHTML 項目開發而成。我們從 Chrome 的評測中已經看Webkit 是一個非常輕量的渲染引擎,因其緊湊乾淨的代碼基礎,出色的標準支援,以及很小的記憶體佔用而備受讚譽。這些品質使得 Webkit 成為眾多瀏覽器的熱選核心。

 

Webkit 主要用於蘋果的 Safari 瀏覽器與 iPhone,但一些重要的廠商如 Adobe,Nokia, Trolltech 也使用這個核心。Webkit 的使用者中還包括一些不太知名的瀏覽器,包括 iCab, Omniweb, Shiira, 以及 Epiphany。在一些二線作業系統,如 Haiku, Syllable, 甚至 Amiga,Webkit 也大行其道。越來越多的開發人員,使用 Webkit 開發富 Internte 應用(rich Internet applications)。Google 在對眾多核心進行評估之後,為 Android 行動瀏覽器,以及 Chrome 案頭瀏覽器選擇了 WebKit。開發人員對 Webkit 公認的評價是:這是一個非常出色的渲染引擎,可以用於眾多場合,它的吸引力讓很多開發人員開始懷疑 Mozilla 的 Gecko 核心是否還有市場。

 

蘋果為什麼抵制 Gecko

    Gecko 源自 Netscape,並早於 KHTML,Gecko 因龐大與複雜的代碼基礎而頻遭詬病。Gecko 非常強大,但代價高昂,複雜,高記憶體佔用。因此,在很多場合 Gecko 的眾多功能反而成了負擔。

  Gecko 核心過於複雜的原因是 Gecko 意圖提供除了 HTML 渲染之外的更多功能。Mozilla 早期的野心很大,Mozilla 最早的應用套件包括瀏覽器,郵件和新聞群組程式,Web 設計工具,IRC 聊天工具。除了渲染 HTML,Gecko 還要提供一種應用廣泛的,基於 XML 的使用者介面產生引擎,XUL。XUL 被用在所有這些程式中。XUL 現在仍用在 Firefox 中,用來產生使用者介面,因此造就了 Firefox 最有價值的重多擴充應用。

  Gecko 過於複雜的另外一個原因是 XPCOM,一個強大的組件系統。雖然 XPCOM 為 Gecko 帶來很多激動人心的功能,讓這個渲染引擎實現組件化,然而,這個功能被一些開發人員濫用,當 Ars Technica2004年採訪 Mozilla 開發人員 Scott Collins的時候,Scott Collins 說,對 XPCOM 的濫用是 Mozilla 犯的幾個主要錯誤之一。

  鑒於 XUL 和 XPCOM 所帶來的複雜性,蘋果自然要考慮為 Safari 選擇一種更輕量的核心。蘋果要設計一款可以和 Mac 作業系統緊密結合的瀏覽器,他們還預見到,這個引擎應該支援行動裝置,他們因此認識到 KHTML 比 Gecko 更合適。

  2003年,當蘋果決定在 Safari 中使用 KHTML 的時候,Mozilla 的 Mike Shaver 曾在部落格中承認 Gecko 的缺點。他同時預言,蘋果會成為他們推廣 Web 標準的聯盟。他寫道,

  “小而精練曾是我們的苦苦追尋的目標,Gecko 的龐大與臃腫在各種評測中拉了我們的分數,如果我不得不寫一個新瀏覽器,我會考慮 Mozilla 之外的選擇。我希望 Mozilla 向 Safari/KHTML 學習,因為它們用 1/10 的代碼實現了非常棒的功能。”

  Gecko 洗心革面帶來 Firefox 3 的火爆

  2003年以來,發生了很多變化。Gecko 代碼基礎已經發展了很久,Gecko 依然複雜,然而它的很多曆史遺留的缺陷正被一一攻破,Gecko 為 Firefox 3 帶來眾多革新,為整個 網頁瀏覽體驗帶來非常顯著的改善。

  Gecko 1.9 使用跨平台的 Cairo 渲染架構,對 SVG 的巨大改進簡化了代碼並引入一些非常 Cool 的功能,如全頁縮放,同時,重構的 reflow 演算法,讓 Gecko 通過 Acid 2 測試成為可能。Mozilla 還非常顯著地降低了對記憶體的佔用,甚至超越了 Safari 和 Opera。

  對 XPCOM 的使用被大大減少,XPCOM 對資源的佔用通過一個新的迴圈回收器得到減低。這個工作仍在繼續,Mozilla 將在 Firefox 4 中進一步減低 XPCOM 的負擔。Gecko 的其它缺陷也在新的開發中被一一正視,比如,Firefox 3.1 的 Alpha 版中就已經加入對 CSS 3 的支援,另外一些效能的改進會讓 Gecko 更具競爭性。Mozilla 的 TraceMonkey 引擎將可能包含在 Firefox 3.1 中,這將顯著地提高 JavaScript 效能。

  從技術的角度,Gecko 現在非常穩固,絲毫不比 Webkit 差。一些證據顯示,Gecko 正在進軍移動領域,這在不久前還是不可能的事。Mozilla 擁有資源,開發經驗以及社區支援,這將引導 Gecko 進入任何 Webkit 所能進入的地盤。

瀏覽器核心Gecko與WebKit

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.