• 你能描述一下渐进增强和优雅降级之间的不同吗?(面试题目)


    第一眼看到这个题目,这两个名词都不熟悉,回头查了相关资料,看了下,实际自己之前用过,但是不知道原来有这么两个好听的名字。先看两个例子:

    .transition{
      -webkit-transition: all .5s;
         -moz-transition: all .5s;
           -o-transition: all .5s;
              transition: all .5s;  
    }
    .transition{ 
           transition: all .5s;
        -o-transition: all .5s;
       -moz-transition: all .5s;
     -webkit-transition: all .5s;
    }

     第一个例子的写法叫做渐进增强(progressive enhancement),第二个例子的写法叫做优雅降级(graceful degradation)。(关于渐进增强,可以参考张鑫旭的文章: http://www.zhangxinxu.com/wordpress/?p=788

    什么是渐进增强(progressive enhancement)、优雅降级(graceful degradation)呢?

    渐进增强(progressive enhancement):针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。(从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面添加无害于基础浏览器的额外样式和功能。当浏览器支持时,它们会自动地呈现出来并发挥作用。

    优雅降级(graceful degradation):一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。(Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。)

    区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的、能够起作用的版本开始,并不断扩充,以适应未来环境的需要。


    渐进增强观点:

    渐进增强观点认为应该关注于内容本身。内容是我们建立网站的诱因,有的网站展示它,有的则收集它,有的寻求、有的操作,还有的网站甚至包含以上的种种,但相同点是他们全都涉及到内容,这使得“渐进增强”成为一种更为合理的设计范例。这也是它立即被Yahoo!所采纳并用以构建其“分级式浏览器支持(Graded Browser Support)“策略的原因所在。

    优雅降级观点:

    优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如IE、Mozilla等)的前一个版本。

    在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨(poor,but passable)”的浏览体验。你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。

  • 相关阅读:
    五大常用算法
    排序八 基数排序
    动态规划:从新手到专家(一)
    Linux Shell 文本处理工具集锦
    sleep与信号唤醒的问题 & 内核对信号的处理方式 & udelay
    《利用python进行数据分析》读书笔记--第九章 数据聚合与分组运算(一)
    《利用python进行数据分析》读书笔记--第八章 绘图和可视化
    《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)
    《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)
    k8s集群通过nginx-ingress做tcpudp 4层网络转发
  • 原文地址:https://www.cnblogs.com/iceflorence/p/6625466.html
Copyright © 2020-2023  润新知