В чем разница между прогрессивным улучшением и постепенной деградацией? - PullRequest
58 голосов
/ 31 марта 2010

Я не понимаю, в чем разница между Прогрессивным улучшением и Изящной деградацией Мне они кажутся одинаковыми.

Не могли бы вы объяснить мне разницу между ними и в какой ситуации я бы использовал один над другим?

Ответы [ 8 ]

85 голосов
/ 31 марта 2010

Они почти одно и то же, но различаются по контексту.

Существует класс браузеров, называемых "Браузеры класса". Это ваши типичные аудитории, которые (вероятно) составляют большинство ваших посетителей. Вы начнете с базового уровня этих пользователей. Назовите это лучшие современные практики .

Если вы хотите улучшить опыт для любого, кто использует FF3.6 или Safari 4 или какой-либо другой ночной webkit для разработчиков whizbang whathaveyou, вам захочется сделать такие удивительные вещи, как

  • закругленные углы через css
  • затененный текст (но, пожалуйста, боже, не слишком много)
  • тени (см. Скобки выше)

Это делает ваш сайт офигенным, но не сломает его. Это прогрессивное улучшение . Принятие будущего с точки зрения лучших практик .

С другой стороны, ваш нишевый сайт Nintendo привлекает значительное количество пользователей IE5. Бедный ты, но ты также хочешь убедиться, что они продолжают возвращаться. Вы можете предоставить альтернативу своему поведению ajax, включив сценарий ajax во внешний файл, и если их JS не включен, возможно, ваши ссылки обновят всю страницу. И т. Д. С точки зрения лучших современных практик , вы убедитесь, что определенные исторические рынки обслуживаются некоторым подобием функционального сайта . Это изящная деградация .

Они в основном идентичны, но различаются по приоритетности для многих групп разработчиков: PE неплохо, если у вас есть время, но GD часто необходим

32 голосов
/ 31 марта 2010

Если ваш сайт выглядит одинаково хорошо во всех браузерах, но некоторые браузеры получают, скажем, танцующих пони, потому что они поддерживают танцующих пони, то это прогрессивное улучшение. Это работает во всех браузерах, но некоторые браузеры получают что-то дополнительное. Обычно этот термин применяется к определенным функциям Javascript, которые могут повысить удобство использования за пределы «необработанного HTML».

Если ваш сайт выглядит так, как вы собираетесь, в браузерах, которые полностью поддерживают, скажем, CSS3 и IE8, - будет отображать одну и ту же страницу без, скажем, закругленных углов, то это постепенная деградация. Сайт действительно предназначен для современных браузеров, но его все же можно использовать в старых браузерах, но не так красиво.

В конце концов, это действительно одно и то же, если смотреть с двух разных точек зрения.

23 голосов
/ 31 марта 2010

Направление от выбранной базовой линии для каждой концепции различно.

Изящная деградация начинается с идеального уровня взаимодействия с пользователем и снижается в зависимости от возможностей пользовательского агента до минимального уровня, ориентируясь на агентов, которые не поддерживают определенные функции, используемые базовой линией.

Прогрессивное улучшение начинается с широкого минимального пользовательского опыта и увеличивается в зависимости от возможностей пользовательского агента до более функционального уровня, обслуживая агентов, которые поддерживают более расширенные функции, чем базовый уровень.

Я думаю, что можно использовать обе концепции, если позволяет время / бюджет. Если нет, то предпочтительнее будет постепенная деградация.

10 голосов
/ 09 мая 2011

Извините, что воскресил что-то более чем годовалое, но чувствовал, что могу каким-то небольшим образом высказать свое мнение по этому вопросу.

Хотя я в некотором смысле согласен с Алексом Макпом и децезе, термины «постепенная деградация» и «прогрессивное улучшение» имеют несколько иное значение, чем у меня.

Изящная деградация , большую часть времени (на мой взгляд), кажется, больше похоже на то, что нужно превратить приложение в представление после того, как оно было плохо сконструировано, во-первых, по моему опыту. Подобно тому, как кто-то строит какой-то обширный объект javascript, который предоставляет пользователю что-то действительно классное, с чем можно поиграть, пока менеджер не придет, не проверит это, и все не начнут кричать, обхватив руками, когда до них доходит, что их приложение не работает в 35% браузеров. "Кто-то лучше предоставит запасной вариант для этого."

Прогрессивное улучшение хотя (и это еще более приятный термин для меня), мне кажется, больше о создании чего-то, что просто работает, на начальном уровне, везде, с помощью самых простых доступных методов , чтобы обеспечить все функции, которые нужны пользователю. Затем к этому можно добавить аккуратные маленькие ненавязчивые помощники, стилизацию и т. Д., Которые фактически улучшают пользовательский интерфейс рассматриваемого приложения, а не просто делают его едва пригодным для использования. "Это выглядит круто. Работает ли это в IE6. Ах да. Это работает"

Я думаю, что, возможно, приведение стиля в качестве примера обоих терминов в верхних двух ответах здесь как бы упускает из виду реальную основную проблему юзабилити, которую прогрессивное улучшение часто решает по самой своей природе, где изящная деградация игнорирует, пока что-то пойдет не так.

Rant over ...

8 голосов
/ 30 марта 2015

Изящная деградация - это практика построения вашей веб-функциональности так, чтобы она обеспечивала определенный уровень взаимодействия с пользователем в более современных браузерах, но она также будет постепенно снижаться до более низкого уровня пользовательского опыта в старых браузерах. Этот более низкий уровень не так удобен для посетителей вашего сайта, но он все же предоставляет им основные функциональные возможности, которые они пришли на ваш сайт для использования; для них вещи не ломаются.

Прогрессивное улучшение похоже, но все наоборот. Вы начинаете с установления базового уровня взаимодействия с пользователем, который будут доступны всем браузерам при отображении вашего веб-сайта, но вы также создаете более продвинутую функциональность, которая автоматически будет доступна браузерам, которые могут его использовать.

Другими словами, постепенная деградация начинается со сложного состояния сложности и пытается исправить это для меньшего опыта, в то время как прогрессивное улучшение начинается с очень простого, рабочего примера и допускает постоянное расширение для будущих сред. Изящная деградация означает «оглядываться назад», тогда как постепенное повышение означает «смотреть вперед», сохраняя при этом ноги на твердой поверхности.

7 голосов
/ 24 декабря 2014

Изящная деградация

Изящная деградация - это способность компьютера, машины, электроники система или сеть, чтобы поддерживать ограниченную функциональность, даже когда большой часть его была уничтожена или выведена из строя. Цель постепенной деградации является предотвращение катастрофического отказа.

Изящная деградация является одним из решений. Это практика создания веб-сайта или приложения, чтобы обеспечить хороший уровень взаимодействия с пользователем в современных браузерах. Тем не менее, он будет грациозно ухудшаться для тех, кто использует старые браузеры. Система может быть не такой приятной или красивой, но базовая функциональность будет работать на старых системах.

Простой пример - использование 24-битных альфа-прозрачных PNG. Эти изображения могут быть отображены в современных браузерах без проблем. IE5.5 и IE6 будут показывать изображение, но эффекты прозрачности потерпят неудачу (его можно заставить работать при необходимости). Старые браузеры, которые не поддерживают PNG, отображали бы альтернативный текст или пустое место.

Разработчики, принимающие постепенную деградацию, часто указывают уровень поддержки своего браузера, например браузеры 1-го уровня (лучший опыт) и браузеры 2-го уровня (ухудшенный опыт).

Прогрессивное улучшение

Прогрессивное улучшение - это стратегия для веб-дизайна, которая подчеркивает доступность, семантическая разметка HTML и внешняя таблица стилей и скриптовые технологии. Прогрессивное улучшение использует веб-технологии слоистым образом, который позволяет каждому получить доступ к основному контенту и функциональность веб-страницы, используя любой браузер или Интернет подключение, а также предоставляет расширенную версию страницы для те с более продвинутым программным обеспечением браузера или большей пропускной способностью.

Прогрессивное улучшение похоже на постепенную деградацию, но в обратном направлении. Веб-сайт или приложение установит базовый уровень взаимодействия с пользователем для большинства браузеров. Более продвинутые функциональные возможности будут добавлены, когда браузер его поддерживает.

Прогрессивное улучшение не требует от нас выбора поддерживаемых браузеров или возврата к макетам на основе таблиц. Мы выбираем уровень техники; т. е. браузер должен поддерживать HTML 4.01 и стандартный запрос / ответы на странице.

Возвращаясь к нашему примеру с изображением, мы можем решить, что наше приложение должно работать во всех графических браузерах. Мы могли бы использовать GIF-изображения низкого качества по умолчанию, но заменить их на 24-битные PNG, если браузер их поддерживает.


Ссылки

Википедия: Прогрессивное улучшение и Плавное ухудшение (Fault_tolerance)

Источник: Блог Sitepoint

0 голосов
/ 14 марта 2014

, чтобы упростить задачу, просто установите бар прямо вверху, тогда вы можете игнорировать прогрессивное улучшение. когда выйдет новая функция, поднимите планку;)

или в качестве альтернативы установите свой бар на самый низкий уровень (возможно, рысь?) И просто используйте прогрессивное улучшение.

0 голосов
/ 31 марта 2010

Я нахожу, что это имеет отношение - вы говорите: «Хорошо, мой сайт работает с Lynx, пользователи могут делать все, что я хочу, чтобы они могли делать, теперь давайте добавим немного шума», или вы говорите «хорошо, мой сайт работает в Firefox, теперь давайте попробуем исправить это для людей, которые не хотят использовать это / которые отключают JavaScript / etc "

...