渐进增强与优雅降级

       这里提到的“渐进增强”和“优雅降级”是处理浏览器兼容性的两种方法论,并还引发过激烈的辩论。虽然起初他们被看做可互换的概念,但本质上却完全相反。下面我们就谈论下关于这两个概念:
       优雅降级:指的是首要为现代浏览器提供最可观的效果,然后保证为某些老版本的浏览器提供基本可用的体验,即表现在现在浏览器中提供的新特性在老版本浏览器中会被降级,且一般会有一个达到基本体验的分界点,同时会声明不支持那些老掉牙的浏览器,类似于警告性语言并提出建议(如您的浏览器老的让人笑话,建议下载较新版本浏览器!);
       渐进增强:从不同层面上渐进增强与优雅降级是恰恰相反的概念,表现在渐进增强则是通过牢固的html框架实现基本浏览器的标准效果,然后用CSS样式和必要的JavaScript为较新版本的浏览器提供增强渐进的用户体验,也就是说渐进增强以恪守Web标准的标签为基础,意味着他在所有浏览器中均可用。
       那么针对这两个概念,作为前端开发选择哪个作为自己的“信仰”呢?目前,渐进增强被普遍认为是开发网站的很好方式,但是现实中我却一直用的是优雅降级方式,那为什么会这样呢?首先现在前端开发用的比较火热的响应式设计则很大程度上依赖于CSS3,同时还有HTML5的号召逐渐扩大,网页制作进入新一轮的革新,而IE6、7、8是在CSS3、HTML5之前就已经被开发和发布出来了,所以兼容性与冲突是难免的的,那么为了实现渐进增强你会放弃使用CSS3或者HTML5或者疏远响应式,而是用各种CSS样式以及JavaScript来弥补用户体验么?显然作为对前端效果要求苛刻的同胞们不会选择这么做。同时之前说过的渐进增强可以用CSS样式以及JavaScript的打补丁方式来为较新版本的浏览器增加类HTML5和CSS3特性,但导致的结果是用户体验将严重依赖JavaScript,且可用性相较于不使用补丁有所减弱,毫无疑问,影响这个抉择的关键因素是性能。即使不使用补丁,为了能让IE6和IE7的页面渲染效果尽可能与现代浏览器类似,开发时间可想而知。据浏览器市场数据统计,截止2012年IE7的使用率只剩下4%,IE6的使用率仅有1.78%,而现代浏览器如Google Chrome(25.7%)、Firefox(21.01%),可见为现代浏览器开发增强用户体验,远比那些老掉牙的的浏览器修补补丁来的更有意义。当然这并不代表完全不管IE6和IE7等老版本浏览器的基本可用性问题,只是觉得相对于渐进增强的方式,优雅降级更能实现时间和性能上的优化。当然,这只是我的个人观点。