天天看點

淺談浏覽器相容性問題-(1)産生、看待與思考

#淺談浏覽器相容性問題-(1)産生、看待與思考

##相容性問題是如何産生的

首先我們看一則笑話,[如果用槍來比喻各浏覽器的話](http://tieba.baidu.com/p/2696301403),其中chrome,ff等都是NB轟轟的槍。而IE?渣就算了,槍頭還要反過來?這是鬧哪樣。

再回歸正題。2001年微軟釋出了XP和IE6,在當時是**世界上标準執行得最高的浏覽器**,并且有很多私有技術和容錯技術,使得頂峰市場佔有率達到98%。于是驕傲的微軟不理睬W3C,W3C也把微軟抛棄,兩家分道揚镳越久,标準的相差就越來越遠。遺留下的相容性問題就交到了現在的前端開發者身上了。

說白一點,浏覽器是一個(X)HTML/CSS/Javascript等語言的解釋執行環境,h1能解釋為标題,a能解釋為連接配接,都是浏覽器定義好的,這一份定義從一開始定制時有偏差,最終會導緻解釋的結果就會差得很遠,就産生了浏覽器相容性的問題。

##如何看待相容性問題
[w3c标準](http://www.cnblogs.com/p2227/p/3583601.html)才是WEB發展的正确趨勢,是以我們要先熟悉 w3c标準,整體的網頁應該以标準為準。

1. 先在相容w3c的浏覽器上進行開發調試,尤其是HTML結構布局。
2. 再結合一些常見相容性積累,在開發階段就解決IE678的怪異問題。
3. 然後實地測試,保證産品/項目中不存在一些BUG。
4. 最後階段,我們必須要在自己的積累中添加前一階段遇到BUG的解決方法,用架構和文檔去規範自己,快速解決我們的将來會遇到的重複或類似問題。

##IE6
全球IE6實時資料:http://www.ie6countdown.com 中國大陸一枝獨秀。在實際項目中,要不要相容IE6,相容到哪個程度。我覺得這可以歸結為一種項目/産品成本的考慮問題:如果相容IE6,那麼我們的開發人力時間及其他成本要增加多少,回報有多少。鑒于國情,也很難一下子咔嚓掉這個問題。就好像IC晶片的銀行卡比磁條的要好用安全,一夜之間全國所有磁條卡都不能用,ATM全換了,時間人力成本根本不可能,公衆(例如我)也不會接受。再細分一點吧,各行業這個情況也不太一樣,金融、gov和醫療行業恐怕是老大難了。甚至還見過有醫院裡面是用WIN2000+IE5.5。
對于此我隻有兩點意見:

1. IE6相容得再好,效率肯定沒有V8引擎的chrome來得快,而且很多相容是以效率為代價的。
2. 不要因為忙于相容IE6,而不去理會HTML5/CSS5等新标準,IT人員總是要向前看的。

##相容性問題的思考
随着移動網際網路的興起,移動裝置的相容問題成為一種新的問題。當時項目實際遇到的問題是:輕按兩下與單擊的問題。而且移動端的相容問題最大的還是分辨率問題,這個也不是某個廠家刻意為難人的,是客觀存在的。普及[語義化标簽](http://www.cnblogs.com/p2227/p/3586725.html),能一定程度上解決這個問題;響應式布局,也是應此而興起的。

由于時代是不停在發展的,是以相容性問題肯定會長期存在,我們也不必抱着一種厭倦的态度去看待;而且我覺得這個問題的解決正是前端開發人員的一部分價值展現所在;最後,在解決了重複的問題之後,一定要有所歸納,有所收獲,令自己的價值提升。相容,不僅是指向後相容,還包括對未來可能出現問題的處理。

##參考
http://www.zhihu.com/question/21296251/answer/17798392

http://www.zhihu.com/question/20984284