第143天:渐进增强和优雅降级之间的不同

简介: 渐进增强和优雅降级之间的不同1、渐进增强.transition{ -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .

渐进增强和优雅降级之间的不同

1、渐进增强

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

2、优雅降级

.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

 

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

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

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

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


4、渐进增强观点:

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

5、优雅降级观点:

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

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

相关文章
|
2天前
|
存储 缓存 持续交付
后端世界的微妙平衡:性能与可维护性的博弈###
【10月更文挑战第15天】 在软件开发的浩瀚宇宙里,后端开发犹如一颗星辰,既需璀璨夺目以支撑业务辉煌,又得稳若磐石确保系统长青。本文探讨了后端开发中性能优化与代码可维护性之间的微妙平衡,通过实例分析与策略建议,揭示了如何在追求极致速度的同时,保持代码的清晰、可读与易于迭代,实现技术与艺术的和谐共生。我们相信,正如印度圣雄甘地所言:“你必须成为你希望在世界上看到的改变。”开发者在面对复杂系统挑战时,也应主动寻求变革,探索更高效的解决方案。 ###
15 3
|
4月前
|
移动开发 前端开发 UED
渐进式增强和优雅降级是两种互补的策略
【6月更文挑战第14天】前端开发中的渐进式增强与优雅降级是确保跨浏览器、跨设备良好体验的关键策略。渐进式增强从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版开始,逐步降级功能以适应老旧浏览器。实践包括遵循HTML5/CSS3规范,使用流式布局,检测浏览器特性及提供备选方案。这两种方法旨在创建适应性强、兼容性好的网站,提升用户体验。
34 1
|
3月前
软件复用问题之度量组件的可靠性,如何解决
软件复用问题之度量组件的可靠性,如何解决
|
3月前
|
图形学 开发者
U3D开发进阶:精细调整Collider与优化碰撞检测性能
【7月更文第11天】在Unity 3D(简称U3D)开发过程中,精确控制Collider(碰撞器)的设置与合理利用Layer Collision Matrix(层级碰撞矩阵)对于提升游戏性能、优化物理模拟至关重要。本文将深入探讨这两项技术的应用,通过实际案例和代码示例,帮助开发者构建更加高效、流畅的游戏体验。
274 2
|
3月前
|
机器学习/深度学习 自然语言处理 数据挖掘
RouteLLM:高效LLM路由框架,可以动态选择优化成本与响应质量的平衡
新框架提出智能路由选择在强弱语言模型间,利用用户偏好的学习来预测强模型胜率,基于成本阈值做决策。在大规模LLMs部署中,该方法显著降低成本而不牺牲响应质量。研究显示,经过矩阵分解和BERT等技术训练的路由器在多个基准上提升性能,降低强模型调用,提高APGR。通过数据增强,如MMLU和GPT-4评审数据,路由器在GSM8K、MMLU等测试中展现出色的性能提升和成本效率。未来将测试更多模型组合以验证迁移学习能力。该框架为LLMs部署提供了成本-性能优化的解决方案。
99 2
|
3月前
业务系统架构实践问题之平衡SPI的语义精确性和实现的复杂性问题如何解决
业务系统架构实践问题之平衡SPI的语义精确性和实现的复杂性问题如何解决
|
5月前
|
编解码 前端开发 JavaScript
渐进增强与优雅降级:提升用户体验的双重策略
渐进增强与优雅降级:提升用户体验的双重策略
渐进增强与优雅降级:提升用户体验的双重策略
|
5月前
|
算法
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
|
5月前
|
前端开发 JavaScript UED
浏览器的渐进增强和优雅降级
浏览器的渐进增强和优雅降级
|
5月前
|
前端开发 UED
渐进增强和优雅降级之间的不同
渐进增强和优雅降级之间的不同
64 0