關於QT中Webkit內核瀏覽器是本文要介紹的內容,主要是來學習QT中webkit中瀏覽器的使用。提起WebKit,你們天然而然地想到瀏覽器。做爲瀏覽器內部的主要構件,WebKit的主要工做是渲染。給定一個HTML文件,WebKit的工做是把 HTML 格式的內容繪製出來,包括:node
瀏覽器與用戶的交互,主要經過 JavaScript 程序控制 。譬如用戶在瀏覽器界面上移動鼠標,有些圖標會放大或縮小,顏色會變化等等。 嚴格說來,JavaScript Engine不屬於WebKit,可是WebKit自帶了一個JavaScript Engine,SquirrelFish。web
不過在WebKit框架下,能夠把SquirrelFish Java Engine替換成其它版本,而不影響WebKit總體工做。譬如,Google的Chrome瀏覽器,內部使用的渲染機是WebKit,可是 Google沒有用SquirrelFish,而是本身另起爐竈開發了一套JavaScript Engine,取名V8。V8的來歷不清楚,或許是由於Google的工程師喝多了V8果蔬飲料,因此就取了這麼個名字。就如同Sun Microsystems的工程師喝多了咖啡,因而把他們發明的新語言定名爲Java同樣。ajax
提及渲染機(Rendering Machine ),微軟的 IE 瀏覽器用的 Rendering Engine ,名曰三叉戟( Trident );Firefox 用的 Rendering Engine ,叫 Gecko 。而 Apple 的 Safari ,以及 Google 的 Chrome ,用的 Rendering Engine 都是 WebKit。瀏覽器
雖然IE瀏覽器 佔據大部分市場份額,可是談論 Trident 的文章不是不少。而Firefox使用的Gecko,它的特色是小,有點像 OS 的微內核同樣,擴展性很好;最近幾年,談論 WebKit 的文章不少,甚至有人斷言, WebKit是當今最好的Rendering Engine。WebKit之因此大熱, 估計與如下幾個因素有關:緩存
須要指出的是, Rendering Engine 的用途,並不限於瀏覽器,而是能夠充當通用的 UI 實現平臺。譬如,微軟的電子郵件軟件 Outlook ,雖然不是瀏覽器,可是其界面渲染,使用了微軟的Rendering Engine,Trident。甚至微軟的其餘 Office 系列軟件,也使用了 Trident。架構
Chrome爲何要用Rendering Engine來處理渲染,而不是用Java Swing那樣的UI工具?估計有兩個緣由:框架
一、方便開發,吸引更多開發者。ide
Java Swing當然不難用,可是廣大開發者更熟悉HTML+CSS+JavaScript。哪一個手機能吸引更多開發者,它就能得到更多更好的應用程序。哪一個手機能擁有更多更好的應用程序,它的市場前景就更廣闊。使用C/C++語言的開發者人數,不如Java的多。Java的用戶,不如HTML+CSS+JavaScript的多。Palm WebOS之因此把GUI的管理基於WebKit基礎之上,估計主要的目的是吸引廣大Web開發者,這些人最熟悉的工具就是 HTML+CSS+JavaScript。工具
Ruby on Rails的締造者,David H. Hansson,於2007年6月發表過一篇博客,題爲「我就是喜歡HTML+CSS+JavaScript,咋了?」( http://ajax.sys-con.com/node/395424)。文中表達了這麼一個觀點,以 HTML+CSS+JavaScript爲表明的Web技術源於實踐,它們已經發展和經受了10多年的考驗。如今你們要作的,不是去追求無必要的所謂完美,而是用好HTML+CSS+JavaScript,把它們的潛力充分挖掘出來。或許David H. Hansson的觀點有點偏激,可是不能否認的是,他的觀點有不少擁護者。基於WebKit之上的GUI系統設計,Palm WebOS是否是有意迎合Web開發者?佈局
二、工做流程的柔性組織。
複雜一點的應用程序,一般由多個頁面組成,頁面與頁面之間的銜接,稱爲工做流程。應用程序的更新,不只涉及每一個頁面的內容的更改,並且也涉及工做流程的變動。WebKit 這樣的Rendering Engine,不只提供了單個頁面的渲染,並且也提供了歷史頁面的緩存,支持後退(Back),前進(Forward)以及歷史(History)等等功能。同時,WebKit可以記憶用戶對於每一個頁面作過哪些修改,甚至提供恢復(Undo)功能。
小結:淺談關於QT中Webkit內核瀏覽器的內容介紹完了,但願經過本文的學習能對你有所幫助!