1. 程式人生 > >優雅降級 與 漸進增強

優雅降級 與 漸進增強

優雅降級與漸進增強

何為漸進增強、優雅降級?

通過使用某些技術,當瀏覽器支援相應功能時文件會得到增強(漸進增強),而當瀏覽器不支援相應功能時,文件被退化(優雅降級)。但不支援相應功能的瀏覽器也會獲得同一文件的具備相同資訊量但卻不一樣的檢視。Web開發人員目前的任務就是開發出具有不唐突性,也就是能夠根據瀏覽器能力實現漸進增強或平穩退化的Web應用來。

常用兩種策略:

【1】 優雅降級(graceful degradation),一開始就構建站點的完整功能,然後針對瀏覽器測試和修復,

【2】 漸進增強(progressive enhancement),一開始只構建站點的最少特性,然後不斷針對各瀏覽器追加功能。 


優雅降級

什麼是優雅降級?就是隨著瀏覽器版本的向前,網站的優雅程度逐漸降低,也就是我們在開發網站應用時,先關注我們的應用是否能在最新的瀏覽器上執行,在開發末期,才去考慮把讓老版本的瀏覽器支援我們的一些關鍵功能,但是其已經缺少了足夠的優雅性,或者說沒有很好的使用者體驗。一個比較典型的開發過程就是:我們現在FireFox上開發專案,然後針對比如IE版本的瀏覽器,修復不相容的地方和去除那些無法被IE實現的功能。

“優雅降級”認為應該針對那些最高階、最完善的瀏覽器來設計網站。而將那些被認為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發週期的最後階段,並把測試物件限定為主流瀏覽器(如 IE、Mozilla 等)的前一個版本。一開始就構建完整的功能,然後再針對低版本瀏覽器進行相容。

在這種設計範例下,舊版的瀏覽器被認為僅能提供“簡陋卻無妨 (poor, but passable)” 的瀏覽體驗。你可以做一些小的調整來適應某個特定的瀏覽器。但由於它們並非我們所關注的焦點,因此除了修復較大的錯誤之外,其它的差異將被直接忽略。

“漸進增強”

針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高階瀏覽器進行效果,互動等改進和追加功能達到更好的使用者體驗。

把網站的開發劃分為三個部分,第一部分是最基礎的部分,就是html部分,一定要讓所有具體的細節都得到展示,並在所有瀏覽器上都進行測試,保證站點頁面在低階瀏覽器中的可用性和可訪問性的基礎上,再去開發其他部分;第二部分是CSS,當然,可能不會有所有瀏覽器都支援,但是起碼他們的基本顯示不成問題了;第三部分是JS,我們使用內容和行為相分離的方式,也就是使用外部JS的方式。  所以這種漸進增強的方式也是我們使用外部連結來引入CSS和JS的原因,這樣我們就防止瀏覽器因不能解析html標籤中的CSS和JS而不能顯示最基本的內容。


GD(優雅降級)和PE(漸進增強)的區別在於:

優雅降級是從複雜的現狀開始,並試圖減少使用者體驗的供給,

而漸進增強則是從一個非常基礎的,能夠起作用的版本開始,並不斷擴充,以適應未來環境的需要。

優雅降級意味著往回看;

而漸進增強則意味著朝前看,同時保證其根基處於安全地帶。