渐进增强和优雅退化有什么区别?

我对“ 渐进增强”和“ 优雅退化”之间的差异感到困惑。 对我来说,他们看起来是一样的。

你能否向我解释两者之间的差异,以及我会在哪一种情况下使用这两种情况?

他们几乎是完全一样的东西,但他们在不同的上下文。

有一类名为“A级浏览器”的浏览器。 这些是您的典型观众(可能)组成大部分访问者。 您将从这些用户的基线开始。 称之为最好的现代做法

如果你想提高任何人使用FF3.6或Safari 4或其他一些whizbang开发者每晚webkit whathaveyou的经验,你会想做一些很棒的事情,如

  • 圆angular通过CSS
  • 阴影的文字(但请神,不要太多)
  • 阴影(请参阅上面的括号)

这些让你的网站屁股看起来,但不会打破它。 这是渐进式的增强 。 从最佳实践的angular度来看未来。

另一方面,你的小众任天堂网站吸引了相当数量的IE5用户。 可怜的你,但你也想确保他们继续回来。 您可以通过在外部文件中包含ajax脚本来提供ajax行为的替代方法,如果他们的JS未打开,也许您的链接会更新整个页面。 等等从最好的现代实践的angular度来看,你要确保某些历史市场正在被一些function性网站的外表所照顾。 这是优雅的退化

他们大多是相同的,但在许多开发团队的优先考虑方面有所不同:如果你有时间,PE是相当不错的,但GD往往是必要的

如果你的网站在所有的浏览器上看起来都一样好,但是某些浏览器因为支持跳舞的小马而跳舞的话,那么这就是渐进式增强。 它适用于所有的浏览器,但某些浏览器可以获得额外的function。 通常这个术语适用于某些可能增强“原始HTML”以外的可用性的Javascript特性。

如果你的网站只是看起来像你打算在完全支持CSS3和IE8的浏览器上显示相同的页面,而不是圆angular,那么这就是“优雅的降级”。 这个网站确实是用于最先进的浏览器,但它仍然可以在旧版浏览器中使用,只是不那么奇特。

最后,他们真的是一回事,从两个不同的angular度来看。

每个概念的select基线的方向是不同的。

优雅的降级从理想的用户体验级别开始,并根据用户代理能力降低到最低水平,以适应不支持基准使用的某些function的代理。

渐进式增强从广泛的最低用户体验开始,并根据用户代理function提高到更高的能力水平,从而满足支持比基线更高级function的代理的需求。

如果时间/预算允许的话,我认为可以使用这两个概念。 如果不是那么优雅的退化将是优选的。

对不起复活了一年多的东西,但觉得我可以在一些小的方面,我自己的意见,在这个问题上。

虽然我同意Alex Mcp和某种方式的欺骗,但是“优雅的退化”和“渐进的增强”这两个词的含义与我的立场略有不同。

在我的经验中,很多时候(在我看来), 优雅的退化似乎更像是一个坚持打败应用程序的应用程序。 就像有人构build了一些大型的JavaScript对象,为用户提供了一些非常酷的function,直到经理出现,testing这个事情,每个人都在尖叫着,当他们注意到他们的应用程序不工作在35%的浏览器。 “有人更好地提供这个回退。”

虽然渐进式增强 (也是一个更好的说法)在我看来,更多的是通过可用的最基本的方法,在入门级和任何地方构build一些刚刚起作用的东西,以提供用户的所有function需要。 这可以添加到整洁的小不显眼的助手,样式等,实际上提高了应用程序的用户体验,而不是使其几乎不可用。 “这看起来很酷,它在IE6中工作,哦,是的,它会”

我认为,也许给风格作为一个例子在这里的顶部两个答案这两个术语有点忽略了真正的潜在的可用性问题, 渐进式增强通常解决它的本质, 优美的退化忽略,直到事情出错。

饶了…

优雅的降级是build立您的networkingfunction的做法,以便它在更现代的浏览器中提供一定程度的用户体验,但是它也会在较老的浏览器中体验到较低级别的用户体验。 这个较低的级别不适合您的网站访问者使用,但它仍然为他们提供了基本的function,他们来到您的网站使用; 事情并没有打破他们。

渐进式的增强是相似的,但它却是相反的。 首先build立所有浏览器在呈现网站时能够提供的基本级别的用户体验,同时还构build更高级的function,供浏览器自动使用。

换句话说,优雅的退化是从复杂的现状开始的,并试图为较小的经验而固定,而逐渐增强则从一个非常基本的工作例子开始,并允许对未来的环境进行不断的扩展。 优雅地降级意味着回头看,而逐步加强意味着向前看,同时保持脚踏实地。

优雅的退化

良好的降级是计算机,机器,电子系统或networking即使在很大一部分被破坏或无法使用时也能保持有限function的能力。 优雅退化的目的是为了防止灾难性的失败。

优雅的退化是一个解决scheme。 这是build立一个网站或应用程序的做法,以便在现代浏览器中提供良好的用户体验。 但是,对于那些使用旧浏览器的用户来说,这将会优雅地退化。 系统可能不如人愉快或漂亮,但基本function将在较旧的系统上工作。

一个简单的例子是使用24位透明的PNG。 这些图像可以在现代浏览器上显示而不会出现问题。 IE5.5和IE6会显示图像,但透明效果会失败(如果需要,可以使其工作)。 不支持PNG的旧版浏览器会显示替代文字或空白区域。

采用优雅降级的开发人员通常会指定其浏览器支持级别,例如1级浏览器(最佳体验)和2级浏览器(降级体验)。

渐进式增强

渐进式增强是强调可访问性,语义HTML标记以及外部样式表和脚本技术的网页devise策略。 渐进式增强function以​​分层的方式使用networking技术,允许每个人使用任何浏览器或互联网连接来访问网页的基本内容和function,同时为具有更高级浏览器软件或更高带宽的用户提供增强版本的页面。

渐进式增强与优雅退化相似,但相反。 网站或应用程序将为大多数浏览器build立基本级别的用户体验。 当浏览器支持时,将会添加更高级的function。

渐进增强不要求我们select支持的浏览器或恢复到基于表格的布局。 我们select一个技术水平; 即浏览器必须支持HTML 4.01和标准页面请求/响应。

回到我们的图像例子,我们可能会决定我们的应用程序应该在所有的graphics浏览器中运行。 默认情况下,我们可以使用质量较低的GIF图像,但在浏览器支持时,请使用24位PNGreplace它们。


链接

维基百科: 逐步增强优雅的退化(Fault_tolerance)

来源: Sitepoint博客

我发现它往往是态度 – 你说“好吧,我的网站与山猫工作,用户可以做我希望他们能做的一切,现在让我们添加一些panache”,或者你说:“好吧,我的网站工作在Firefox中,现在让我们尝试修复它不愿意使用/谁closuresJavaScript /等“

为了使它更容易,只要把你的酒吧放在最上面,那么你可以忽略渐进增强。 当一个新的function出来提高你的酒吧;)

或者可以设置你的酒吧到最低水平(l perhaps也许?),只是使用渐进式增强。