快速浏览Google之后,我发现了一些有关它的高层讨论。
谁能推荐一个适合程序员的好地方。
具体来说,我一直在用PHP编写Web应用程序,并且希望使用YUI来改进我正在编写的页面,但是其中很多似乎都是"/>

关于ajax:什么是渐进增强?

关于ajax:什么是渐进增强?

What is Progressive Enhancement?

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后,您会看到下拉列表,其中包含先前条目的建议。

这是渐进增强。


另请参见Unobtrusive Javascript,它是逐步发展的基础。


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


渐进增强功能是一种开发技术,强调语义HTML的首要性,然后测试浏览器功能,并有条件地对JavaScript和/或CSS增强功能进行"分层",以便可以利用这些增强功能的浏览器。

其中一项关键是要了解我们正在测试浏览器的功能,而不是嗅探浏览器。 Modernizr是一个非常流行的浏览器功能测试套件。

渐进式增强本质上是可访问的(第508节);它提供了符合法律条文和规则精神的条件。

The Filament Group就此主题撰写了出色的"渐进增强设计"书。 (我不隶属于Filament Group,尽管他们真是太聪明了,但我希望自己能成为。)


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

有些人可能认为这是不必要的,但是很多人使用NoScript之类的插件(或者在浏览器设置中仅关闭了JavaScript)进行浏览。另外,许多移动Web浏览器可能支持也可能不支持JavaScript。因此,最好在没有使用JavaScript的情况下完全测试您的网站。


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

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

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


渐进增强:

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

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

    基本上,首先以Plain Old HTML构建网站/框架-结构元素,链接和表单。然后添加一些样式,然后添加闪亮的内容(Ajax或您拥有的东西)。

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

    网站应该可以在任何用户代理中工作,看起来不一样(如果您的视力不佳,甚至看起来也不像声音),就可以工作。


    推荐阅读