最近發現了“優雅降級”與“漸進增強”,認為是個很重要的觀念,當下決定也要把這段內容紀錄到這次主題中。
單純聊聊個人心得,因為自己不是程式出身,內容部份就請各位多擔待了^^;;也歡迎提出討論。
什麼是優雅降級?我認為是搞瘋最好的方法xD。設計做好Mockup給前端製作完畢後,滿心期待的一一打開瀏覽器檢查,但用少女般要見初戀情人的心情打開舊版瀏覽器卻發現了悲劇。想質問為什麼卻發現:圓角–不支援、陰影:不支援、動畫:不支援!因為要在IE6~8一一解決這些問題,除了要借助JS的力量以外,CSS更要使用Hack因應。更慘的是效果不一定會好,依然要且戰(改Code)且走(開IE),看到眼睛脫窗。看起來好像是搞瘋前端,可是這些版面上、使用上的缺陷,要一個講求完美的設計怎麼可能放得下?
什麼是漸進增強?我認為漸進增強就是讓前端抓狂的技能之一。要從最基本功能開始,再因應新版瀏覽器一一加入更好的體驗,雖然有助於後期維護,但大前提在於“足夠的時間”。看看身邊的案子,“不趕”的案子還真是少之又少…
不管開發過程選擇優雅降級與漸進增強,沒有絕對對錯,端看製作時間而定。我自己的習慣是採用優雅降級,先全力在Chrome(Chrome好棒兒~)調到好再向下相容其他瀏覽器。基本上新版瀏覽器上問題都不太多,麻煩的還是在IE7跟IE8,IE6因為連微軟都放棄了就不討論(OS:微軟甚麼時候纔會宣布不支援IE7-8呢…)。
起初認為要向下相容~還不簡單!網路上一堆輔助的Javascript套上去就好啦~但實際上配合的時候依然問題重重,因為要把一堆不是自己寫的東西全部兜在一塊兒要不出問題還真難…問題出在哪裡?我想應該是因為我太遜了Orz。
網路上有一派說法認為網頁在瀏覽器上不一定要一樣,針對舊版瀏覽器的部份只要基本功能可用,版面不致破版就好,如果使用者得不到好的體驗便會更新瀏覽器。我也很認同這個觀點,只是一直有個疑問:為什麼要花時間修補向下相容的問題,而不是“教”使用者如何更新(或換)瀏覽器呢?