渐进增强和优雅降级



在前端这个范畴内,经常会涉及到两个概念:渐进增强优雅降级。 那到底是什么,什么才叫做渐进增强和优雅降级; 下面是个人的理解,结合做过兼容不同浏览器的项目来大概浅谈一下关于这个两个概念。

渐进增强

progressive enhacament 它的定义是:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高版本的浏览器进行效果,交互等进一步的改进和追加迭代功能,已达到更好的用户体验。 渐进增强重点更注重于关于内容,就是说,基本功能有了,希望展示的内容展示出来了,这行了,这就符合第一阶段的需求,起码让用户能用得了最基本最基本的功能。 很清晰,什么是最基本的内容和功能,那就可以参考低版本的浏览器来制定,最低版本的浏览器都能展示了,那高版本的浏览器那就一定可以展示了。然后,在针对不同的功能进行迭代和增强。 重点:关注内容。

优雅降级

graceful degradation 它的定义是:从复杂的现在浏览器开始,并试图减少用户体验来达到满足适配低版本浏览器的。 这种方法针对的是,现代浏览器进行开发,因为现在浏览器比过去低版本的浏览器网页展示的界面更好看,能使用的功能更多,能更满足现代用户的体验,但是只是限制于主流的现代浏览器。

区别:

渐进增强:是旨在从一个非常基础的,能够起基本作用的版本开始,并不断补充相关高一级的功能和交互,来适应未来环境的需求。 优雅降级:是旨在一开始就构建完整的功能,然后在针对低版本的浏览器进行兼容,减少相关功能和交互。 其实这两种方法,从开发角度来说,个人觉得是从不同版本的浏览器按照需求进行选择开发,两种并不存在对立关系,只是需求不同,而进行选择开发。 而从用户体验来说,个人觉得两种方法都要兼顾,因为在理想情况下,前端开发人员毕竟需要满足不同浏览器的兼容。

总结:

简单来说:

渐进增强是从低版本浏览器====>高版本浏览器
优雅降级是从高版本浏览器====>低版本浏览器

而从个人的实践中,绝大部分是偏向于从渐进增强角度进行开发,然后迭代升级。