正文

互操作性與兼容性(4)

IE8 & 9開發(fā)實戰(zhàn):基于下一代IE的應(yīng)用開發(fā) 作者:(美)克羅利


  

2.2  文檔模式與版本控制

并不是所有網(wǎng)頁都是為最新Web標(biāo)準(zhǔn)設(shè)計的,有很多網(wǎng)頁實現(xiàn)了IE特有的功能,由于IE 8向互操作性方向的遷移,這些功能可能會被破壞。本節(jié)介紹兼容性功能,利用這些兼容性功能,Web應(yīng)用程序可以繼續(xù)使用早期IE版本中提供的功能,為這些應(yīng)用程序的開發(fā)人員提供一個緩沖期,在自己合適的時間內(nèi)將這些應(yīng)用程序遷移到符合標(biāo)準(zhǔn)的實現(xiàn)方式。

2.2.1  Quirks模式、文檔模式和X-UA-Compatible

自從出現(xiàn)瀏覽器和Web標(biāo)準(zhǔn)本身以來,各個Web瀏覽器版本之間的標(biāo)記解釋方法就在發(fā)生變化。在IE 4與Netscape 4之間發(fā)生第一次瀏覽器戰(zhàn)爭之后,給新瀏覽器們留下了一個爛攤子:它們要處理的網(wǎng)頁中對什么是標(biāo)記和樣式給出了各種不同解釋(之所以會存在這種情況,是因為在20世紀(jì)90年代末期,各種瀏覽器的實現(xiàn)方式之間存在沖突)。沒有一種方法能夠判斷一個網(wǎng)頁正在做什么,也無從知道它為什么要這樣做,而由于現(xiàn)有網(wǎng)頁都嚴(yán)重依賴于舊網(wǎng)頁的行為,所以更加現(xiàn)代化的標(biāo)準(zhǔn)也胎死腹中。最終,人們創(chuàng)建了DOCTYPE標(biāo)頭,使Web開發(fā)人員能夠“告訴”瀏覽器,這些網(wǎng)頁最初是為哪種標(biāo)準(zhǔn)和實現(xiàn)方式創(chuàng)建的。

這只是一種臨時解決辦法。在20世紀(jì)中期,發(fā)生了3個重要事件:被廣泛采用的Web瀏覽器數(shù)目大幅增加,開發(fā)人員開始構(gòu)建更復(fù)雜的Web應(yīng)用程序,瀏覽器供應(yīng)商之間的互操作性和標(biāo)準(zhǔn)化工作得到了推進。新發(fā)展起來的瀏覽器,例如Safari和Firefox,因為其面世相對較晚,所以更嚴(yán)格地遵守了較新標(biāo)準(zhǔn);而另一方面,IE則落后,支持那些依賴于較舊標(biāo)準(zhǔn)的舊應(yīng)用程序和企業(yè)應(yīng)用程序。IE 8是這個瀏覽器第一次嘗試跟上這些較新標(biāo)準(zhǔn)的步伐,但是就像20世紀(jì)90年代一樣,再次出現(xiàn)了如何處理舊網(wǎng)頁這一問題。

IE 8添加了“文檔模式”作為第二指令集,開發(fā)人員可以利用這些指令來告訴IE如何處理舊網(wǎng)頁。它們可以通過X-UA-Compatible HTTP響應(yīng)頭或者相應(yīng)的<meta>標(biāo)記來規(guī)定。在默認(rèn)情況下不會采用DOCTYPE,但開發(fā)人員也可以選擇使用這一較早的版本控制模型。

2.2.2  文檔模式

文檔模式是一些指令,告訴IE應(yīng)當(dāng)應(yīng)用哪些原有兼容性措施(如果有的話)。由于從IE 6開始,IE的頁面顯示和標(biāo)準(zhǔn)支持程度方面發(fā)生了功能性變化,所以很多應(yīng)用程序都是針對較早版本而不是Web標(biāo)準(zhǔn)編寫的。盡管在IE 8及更高版本中,以“默認(rèn)打開”標(biāo)準(zhǔn)模式呈現(xiàn),但IE提供了大量可供頁面選擇的模式,從而使得這些頁面的分析和顯示方式與其設(shè)計目的一致。

IE 8包含了對大量文檔模式的支持,這些模式中就包括Quirks模式(其行為類似于IE 5)。這些模式希望能夠模擬所面向的IE版本,而且每種模式對DOCTYPE的支持程度各有不同(見表2-3)。

表2-3  IE 8中可以使用的文檔模式

總是選擇一個IE版本中最新的標(biāo)準(zhǔn)解釋(例如,在IE 9上選擇IE 9標(biāo)準(zhǔn)模式)

與每種文檔模式相關(guān)聯(lián)的頭值供網(wǎng)頁用于定位一個特定的文檔模式。在以下各節(jié)將討論如何使用這些值。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號