博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优雅降级 与 渐进增强
阅读量:4131 次
发布时间:2019-05-25

本文共 1238 字,大约阅读时间需要 4 分钟。

优雅降级与渐进增强

何为渐进增强、优雅降级?

通过使用某些技术,当浏览器支持相应功能时文档会得到增强(渐进增强),而当浏览器不支持相应功能时,文档被退化(优雅降级)。但不支持相应功能的浏览器也会获得同一文档的具备相同信息量但却不一样的视图。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(渐进增强)的区别在于:

优雅降级是从复杂的现状开始,并试图减少用户体验的供给,

而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。

优雅降级意味着往回看;

而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

转自:

转载地址:http://nvjvi.baihongyu.com/

你可能感兴趣的文章
Java代码检查工具Checkstyle常见输出结果
查看>>
北京十大情人分手圣地
查看>>
Android自动关机代码
查看>>
Android中启动其他Activity并返回结果
查看>>
2009年33所高校被暂停或被限制招生
查看>>
GlassFish 部署及应用入门
查看>>
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
查看>>
Xcode 报错: Extra argument in call
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
#import <Cocoa/Cocoa.h> 报错 Lexical or Preprocessor Issue 'Cocoa/Cocoa.h' file not found
查看>>
`MQTTClient (~> 0.2.6)` required by `Podfile`
查看>>
X-Code 报错 ld: library not found for -lAFNetworking
查看>>
Bitcode
查看>>
If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>