什么是渐进增强?

时间:2020-03-05 18:37:46  来源:igfitidea点击:

Jeff在谈论使用JQuery编写stackoverflow时提到了"渐进增强"的概念。

快速浏览Google之后,我发现了一些有关它的高层讨论。

任何人都可以推荐一个适合作为程序员开始的好地方。

具体来说,我一直在用PHP编写Web应用程序,并且希望使用YUI来改进我正在编写的页面,但是其中很多似乎都是基于JavaScript的,而大多数驴工作都是使用JavaScript完成的。对我来说,这似乎有些过大,因为在没有Javascript的情况下浏览网站可能会破坏大多数网站。

任何人都有一些开始使用此想法的好地方,我并不真的在乎这种语言。

理想情况下,我想看看如何首先开始创建静态HTML,然后向其添加YUI(或者任何Ajax框架),以便获得更丰富的客户端的好处?

解决方案

回答

就像你说的

To me, that seems a bit overkill, since viewing the site without Javascript will probably break most of it.

这不是渐进增强。渐进式增强是指在没有JavaScript或者CSS的情况下网站可以完美运行,然后添加(分层)这些额外的技术/代码以提高网站的可用性和功能的情况。

我能提供的最好的例子是该网站上的标签输入框。关闭JavaScript后,它仍然可以工作,允许我们输入用空格分隔的标签。启用JavaScript后,我们会获得一个下拉列表,其中包含先前条目的建议。

这是逐步的增强。

回答

我写了一篇有关创建投票的教程,该教程在NETTUTS上使用了渐进式增强功能。这个想法是使用XHTML / CSS和PHP创建一个功能站点,然后使用Javascript拦截表单等。 (我使用了JQuery)。

回答

从另一个方向去做它有时被称为适度降级。当首先使用各种技术提供的增强功能构建站点,然后对其进行修改以优雅地降级以使用那些技术的浏览器时,通常需要这样做。

当设计与IE 5.5,Netscape等旧版浏览器(互联网术语中的古老版本)一起使用时,这也是正常的降级。

我认为,适当降级该应用程序需要做更多的工作。逐步增强它往往会更有效率;但是,有时需要采用一个现有的应用程序并使其在这些缺乏的环境中可访问。

回答

另请参见Unobtrusive Javascript,它是建立基础的渐进式增强。

回答

基本上,如果网站仍然可以在关闭JavaScript的情况下使用,那么我们使用JavaScript添加的任何内容都可以视为渐进式增强。

某些人可能认为这是不必要的,但是许多人使用NoScript之类的添加组件(或者在浏览器设置中仅关闭了JavaScript)进行浏览。另外,许多移动Web浏览器可能支持也可能不支持JavaScript。因此,在有无JavaScript的情况下完全测试网站始终是一个好主意。

回答

这是一个非常重要的概念,令我感到难过的是,很少有Web开发人员能够理解它。

基本上,首先从使用Plain Old HTML构建站点/框架开始-结构元素,链接和表单。然后添加一些样式,然后添加闪亮的内容(Ajax或者我们拥有的东西)。

这不是很困难。就像古马所说,适度的退化是更多的工作。

网站应该在任何用户代理中都可以正常工作,而不是看起来完全一样(即使外观不佳,外观也不一样,但听起来不错)。

回答

渐进增强:

  • 普通的HTML / CSS站点很棒(完全正常工作并且用户友好)。
  • 添加JavaScript定义了一个了不起的新水平。