What is Progressive Enhancement?

2019-01-11 10:11发布

Jeff mentioned the concept of 'Progressive Enhancement' when talking about using JQuery to write stackoverflow.

After a quick Google, I found a couple of high-level discussions about it.

Can anyone recommend a good place to start as a programmer.

Specifically, I have been writing web apps in PHP and would like to use YUI to improve the pages I am writing, but a lot of them seem very JavaScript based, with most of the donkey work being done using JavaScript. To me, that seems a bit overkill, since viewing the site without Javascript will probably break most of it.

Anyone have some good places to start using this idea, I don't really care about the language.

Ideally, I would like to see how you start creating the static HTML first, and then adding the YUI (or whatever Ajax framework) to it so that you get the benefits of a richer client?

8条回答
虎瘦雄心在
2楼-- · 2019-01-11 10:43

I wrote a tutorial on creating a poll that used progressive enhancement at NETTUTS. The idea is to create a functional site using XHTML/CSS and PHP, and then intercept forms etc with Javascript. (I used JQuery).

查看更多
一纸荒年 Trace。
3楼-- · 2019-01-11 10:49

This is such an important concept and it saddens me that so few web developers understand it.

Basically, start by building a site/framework in Plain Old HTML -- structural elements, links and forms. Then add on some style and then shiny stuff (Ajax or what have you).

It's not very difficult. Like palehorse says, graceful degradation is more work.

Websites should work in any user agent, not look the same (not even look but sound if your vision impaired), just work.

查看更多
虎瘦雄心在
4楼-- · 2019-01-11 10:59

Basically, if your site still works with JavaScript turned off, then anything you add with JavaScript can be considered progressive enhancement.

Some people may think that this is unnecessary, but plenty of people browse with addons like NoScript (or, with JavaScript simply turned off in their browser settings). In addition, many Mobile web browsers may or may not support JavaScript. So, it's always a good idea to test your site completely with and without JavaScript.

查看更多
看我几分像从前
5楼-- · 2019-01-11 11:01

See also Unobtrusive Javascript which is the bedrock progressive enhancement is built.

查看更多
【Aperson】
6楼-- · 2019-01-11 11:01

Progressive Enhancement:

  1. The plain HTML/CSS site is awesome (fully working and user-friendly).
  2. Adding JavaScript defines a new level of awesome.
查看更多
狗以群分
7楼-- · 2019-01-11 11:02

As you've said

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

This isn't progressive enhancement. Progressive enhancement is when the site works perfectly without JavaScript or CSS, and then adding (layering) these extra technologies/code to increase the usability and functionality of the website.

The best example I can give is the tag input box on this website. With JavaScript turned off, it would still work allowing you to enter tags separated with a space. With JavaScript turned on, you get a drop down with suggestions of previous entries.

This is progressive enhancement.

查看更多
登录 后发表回答