最近上線一個網站堕阔,發(fā)現會出現IE10及以下瀏覽器不兼容的問題,剛好前幾天有朋友們討論過“優(yōu)雅降級”和“漸進增強” 的話題,所以整理了一下痹束。
定義
漸進增強(progressive enhancement):針對低版本瀏覽器進行構建頁面张症,保證最基本的功能仓技,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗俗他。
優(yōu)雅降級(graceful degradation):一開始就構建完整的功能脖捻,然后再針對低版本瀏覽器進行兼容。
觀點
漸進增強觀點認為應該關注于內容本身兆衅,更適合在產品一開始還沒有大用戶量的時候就去做這件事地沮。
優(yōu)雅降級觀點認為應該針對那些最高級、最完善的瀏覽器來設計網站羡亩。那些被認為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后階段摩疑,并把測試對象限定為主流瀏覽器(如IE、Mozilla等)的前一個版本畏铆。在這種設計范例下雷袋,舊版的瀏覽器被認為僅能提供“簡陋卻無妨(poor,but passable)”的瀏覽體驗。你可以做一些小的調整來適應某個特定的瀏覽器辞居。但由于它們并非我們所關注的焦點楷怒,因此除了修復較大的錯誤之外,其它的差異將被直接忽略瓦灶。
抉擇
Web端產品研發(fā)之前鸠删,就要確定產品的目標用戶,進行用戶調研贼陶,了解使用低配版瀏覽器的用戶占總用戶的百分之幾刃泡,用戶的使用習慣等巧娱。開發(fā)的時候還要考慮成本問題。
使用漸進增強的方式進行開發(fā)捅僵,先做一個基本功能版家卖,兼容大部分低配版瀏覽器,然后進行迭代庙楚,即針對各個瀏覽器進行漸進增加上荡,增加各種功能。在迭代過程中馒闷,可以建議用戶升級瀏覽器酪捡,以便獲得更好的體驗。當用戶認可你的產品纳账,升級瀏覽器的意愿就會比較高逛薇,對于不愿意升級瀏覽器的用戶,也是有基本功能可以使用的疏虫,這樣既兼顧了內核用戶的使用習慣永罚,又可以使產品不斷優(yōu)化迭代。
使用優(yōu)雅降級的方式進行開發(fā)卧秘,如果不這么做呢袱,從一開始就不斷去遷就,對后面的版本迭代會造成更高的維護成本和升級成本翅敌,并且羞福,用戶會一直工作在這種兩邊互相兼容的系統(tǒng)環(huán)境下,出錯率更高蚯涮。結合實際治专,IE8.0 是一個偏舊的內核版本,從理性上考慮遭顶,軟件的發(fā)展勢必淘汰掉一些現有的舊東西张峰,所以長痛不如短痛,及時止損降低研發(fā)成本和增強后續(xù)的開發(fā)兼容性才是更好的選擇棒旗,所以讓用戶升級瀏覽器來兼容產品也符合優(yōu)雅降級的一部分理念喘批。