星期四, 4月 28, 2011

向上、向下兼容

寫網頁其中一個最棘手的地方,是要讓網頁同時在Internet Explorer(IE)FireFoxChrome等瀏覽器下都能順利運作,但比起這個更要命的,是要讓網頁能在IE6、IE7、IE8、IE9四個版本都能順利運作。

這就等於製作電視遊戲時要同時有任天堂不同時代的主機,即紅白機、超任、N64、GameCube、和Wii版本一樣。在電視遊戲界,是怎樣做的呢?由於機種間性能差異極大,所以它們多被視為完全不同的遊戲來製作,也就是,要為每部機各自編寫一套程式。那樣的話,製作五個版本不就和製作五個遊戲沒分別?沒錯,但好消息是GameCube和Wii性能相若,只需在同一套程式加上或者減去體感操作,就能一物兩用。但即使這樣,編寫四套程式是省不了的。

但現實是當新的主機出現時,舊的自然會淡出,所以遊戲製作商並不需要同時編寫四套程式,最多也是寫兩個版本而已。但IE則不同,現在普遍使用的版本有IE6、IE7、IE8、IE9四個之多。為什麼同時有這麼多IE?這就要追索現在的Windows開機系統了。

現時流行的windows系統由舊至新有XP、Vista、Windows7三個版本,當中以XP最穩定,也最受人讚賞;Vista則花樣多多,但會拖慢電腦運作,要有性能極強的電腦才能御駕;Windows7好像比Vista又好不少。所以當新的Windows推出時,雖然有很多人會選擇或者被迫使用Vista或Windows7,但同時也有很多人仍然選擇XP,甚至不惜多付點錢將Vista降格至XP。

每一個Windows都會附送一個網頁瀏覽器,XP附送IE6,Vista附送IE7,而Windows7則附送IE8。雖然我們可以更新我們的瀏覽器版本,但有人聽說IE8劣評如潮,就停留在IE7不敢更新了,也有人根本不懂得更新,最後還是使用附送的版本,所以IE6、IE7、IE8一直都各有用家。之後又有最新的IE9,加起來就是四個版本。

和遊戲機不同,我們會視任天堂不同時代的遊戲機為五樣完全不同的產品,如果真要為每一部機都製作一個版本的話,就當作五個遊戲來做吧。但我們都只將不同的IE視為同一個瀏覽器的強化版而已,所以我們都很不想為同一牌子,但不同版本的IE各自編寫不同的網頁,最好還是同一套程式能在各個IE都能運作順利。

但我們又不能真的將不同的IE完全當做同一樣東西來看。在IE8沒問題的網頁固然不一定能在IE6或IE7運作,但以為反過來,寫出來的網頁在IE6很完美,在更強的IE7和IE8就一定沒問題嗎?這可太天真了。無論遷就哪一個,在另一方都總是會有些很令人費解的問題出現的。好了,所有IE都沒問題了,就輪到FireFox和Chrome不滿意。

後來,我們都明白了,要同時遷就所有版本的IE是沒有可能的。所以像YouTube等大網站早就不再支援IE6,而我們公司呢?卻還是選擇遷就IE6。雖則IE6整體的使用率已不斷下降,但因為我們的內地客戶很多都在使用IE6,所以無法不理會他們的。無論我們選擇遷就哪一個IE,也總不想網頁在其他IE中出錯得太離譜的。但要做到這一點,就已經要花不少心機,大概等如一個人服侍四個老婆一樣...四個或者太誇張,但兩三個總沒錯的。

舊的揮之不去,新的又陸續有來。據說之後又會有IE10,看我們能否同時也兼顧這位新成員了。

P.S.︰
FireFox(現在是4.x)、Chrome(現在是10.x)各自也有不同的版本,難道他們就沒有要兼顧不同版本的問題嗎?
是的,因為他們的版本更新沒有IE那麼大陣仗,用家按兩個掣就能將他們的FireFox和Chrome更新至最新版本,當然就會很樂意更新了。所以我們可以假設用家都在用最新的FireFox和Chrome,編寫網頁時也只需遷就最新的版本即可。再者,FireFox、Chrome並不像IE,在舊版本沒問題的網頁,在新版本多數也不會出事。

沒有留言: