21世紀,瀏覽器雜七雜八,足以讓你眼花繚亂。我們在做頁面相容性測試的時候,面對眾多的瀏覽器該如何調試我們的web頁面?其實,如果你瞭解了瀏覽器的內核,那麼就不會覺得頭疼。因為它們的內核並不是和他的數量一樣那麼多,常見的幾類內核可以歸為:Trident、Gecko、WebKit、Presto 四種。
21世紀,瀏覽器雜七雜八,足以讓你眼花繚亂。我們在做頁面相容性測試的時候,面對眾多的瀏覽器該如何調試我們的web頁面?其實,如果你瞭解了瀏覽器的內核,那麼就不會覺得頭疼。因為它們的內核並不是和他的數量一樣那麼多,常見的幾類內核可以歸為:Trident、Gecko、WebKit、Presto 四種。
至於眾多的瀏覽器,他們只不過是:{不同瀏覽器的外殼+內核=瀏覽器}。外殼指的是瀏覽器界面上的菜單,工具欄,那些讓用戶操作的。而他們都是調用內核來實現各種功能,可見內核才是瀏覽器的核心。所以,我們只要瞭解一款瀏覽器的核心引擎是什麼,然後就可以對其進行相容性測試,不會覺得無從下手。
瀏覽器的內核又可以分為:渲染引擎和js引擎:
渲染引擎:layout engineer或者Rendering Engine,它們負責頁面內容的解析和渲染,也就是訪問一個網站,從頁面空白到頁面載入完成,頁面有朴實到排版完整的過程。它會解析頁面的標簽,載入css,然後計算頁面顯示方式。這理解是有不同的瀏覽器內核,他們對網頁的詞法的解析也有所不同,所以就出現了顯示差異,就是我們前端開發這頭疼的相容性問題。
js引擎:對頁面腳本(javascript)語言的解析,實現頁面一些動態效果。
四種內核的簡介:
1、Trident:微軟開發的引擎,其產品IE產品都是它驅動,也有很多其他瀏覽器也用它做內核。因為微軟ie一直是老大地位,有點自我發展,對w3c的標準支持沒那麼好。存在不少bug,最初更新很少,導致ie5+,ie6等萬惡的瀏覽器存在,讓不少前端開發經驗不多的同學無比的鄙視之!不錯從ie8+開始,ie又慢慢的強大起來了,期待ie10...
2、Gecko:開源的渲染引擎,有C++編寫,功能強大,功能強大、豐富,可以支持很多複雜網頁效果和瀏覽器擴展介面,FireFox就是代表,對w3c標準支持很好,開發和調試都很強大,就是啟動速度不太給力;
3、WebKit:蘋果公司基於KHTML開發的,對網頁的解析比較快,僅此於Presto,但是容錯比較差,不標準的網頁無法正常顯示。用它做核心開發的瀏覽器代表是Safari,Chrome;
4、Presto:Opera Software公司開始的,是被大家公認為最快的渲染引擎。處理JS腳本等腳本語言時,會比其他的內核快3倍左右,但是快也存在一些問題,就是丟掉了一些網頁相容性;
現在,估計你對瀏覽器有一定的認識,對你以後做瀏覽器相容問題應該有所幫助。不同的內核就有不同的渲染引擎,對頁面的解析也有所不同,這就是造成頁面差異的原因。但是如果我們在佈局的時候,儘量用精簡的html結構,合理的配合使用css,就可以大大的減少相容行問題,從而加快我們的開發效率。