В чем разница между прогрессивным улучшением и постепенной деградацией?
Я запутался в том, что разница между прогрессивным улучшением и постепенной деградацией. Мне они кажутся одинаковыми.
Не могли бы вы объяснить мне разницу между ними и в какой ситуации я бы использовал один над другим?
8 ответов
Они почти одно и то же, но различаются по контексту.
Существует класс браузеров, называемых "Браузеры класса". Это ваши типичные аудитории, которые (вероятно) составляют большинство ваших посетителей. Вы начнете с базового уровня этих пользователей. Назовите это лучшими современными практиками.
Если вы хотите расширить возможности пользователей, которые используют FF3.6, Safari 4 или какой-либо другой ночной веб-набор для разработчиков whizbang, вам захочется сделать такие замечательные вещи, как
- закругленные углы через CSS
- затененный текст (но, пожалуйста, боже, не слишком много)
- падающие тени (см. выше в скобках)
Это делает ваш сайт потрясающим, но не сломает его. Это прогрессивное улучшение. Охватывая будущее с точки зрения лучших практик.
С другой стороны, ваш нишевый сайт Nintendo привлекает значительное количество пользователей IE5. Бедный ты, но ты также хочешь убедиться, что они продолжают возвращаться. Вы можете предоставить альтернативу своему поведению ajax, включив сценарий ajax во внешний файл, и если их JS не включен, возможно, ваши ссылки обновят всю страницу. И т.д. С точки зрения лучших современных практик, вы убедитесь, что некоторые исторические рынки обслуживаются неким подобием функционального сайта. Это изящная деградация.
Они в основном идентичны, но различаются по приоритетности для многих команд разработчиков: PE неплохо, если у вас есть время, но GD часто необходим
Если ваш сайт выглядит одинаково хорошо во всех браузерах, но некоторые браузеры получают, скажем, танцующих пони, потому что они поддерживают танцующих пони, то это прогрессивное улучшение. Он работает во всех браузерах, но некоторые браузеры получают что-то дополнительное. Обычно этот термин применяется к определенным функциям Javascript, которые могут повысить удобство использования за пределы "необработанного HTML".
Если ваш сайт выглядит так, как вы собираетесь в браузерах, которые полностью поддерживают, скажем, CSS3 и IE8, и будут отображать одну и ту же страницу без, скажем, закругленных углов, то это постепенная деградация. Сайт действительно предназначен для современных браузеров, но он все еще пригоден для использования в старых браузерах, но не так необычно.
В конце концов, это действительно одно и то же, если смотреть с двух разных точек зрения.
Направление от выбранной базовой линии для каждой концепции различно.
Изящная деградация начинается с идеального уровня взаимодействия с пользователем и снижается в зависимости от возможностей пользовательского агента до минимального уровня, обслуживая агентов, которые не поддерживают определенные функции, используемые базовым уровнем.
Прогрессивное улучшение начинается с широкого минимального пользовательского опыта и увеличивается в зависимости от возможностей пользовательских агентов до более мощного уровня, обслуживая агентов, которые поддерживают более расширенные функции, чем базовый уровень.
Я думаю, что можно использовать обе концепции, если позволяет время / бюджет. Если нет, то предпочтительнее будет постепенная деградация.
Извините, что воскресил что-то более чем годовалое, но чувствовал, что могу каким-то небольшим образом поделиться своим мнением по этому вопросу.
Хотя я согласен как с Алексом Макпом, так и с deceze, термины "Изящная деградация" и "Прогрессивное улучшение" имеют несколько иное значение по сравнению с моим положением.
По- моему, постепенная деградация в большинстве случаев (по моему мнению) - это нечто большее, чем попытка превратить приложение в представление после того, как оно было плохо сконструировано, во-первых, по моему опыту. Подобно тому, как кто-то строит какой-то обширный объект javascript, который предоставляет пользователю что-то действительно классное, с чем можно поиграть, пока менеджер не придет, не проверит это, и все не начнут кричать, размахивая руками, когда они обращают внимание на то, что их приложение не работает в 35% браузеров. "Кто-то лучше предоставить запасной вариант для этого".
Прогрессивное улучшение, хотя (и это более приятный термин, чтобы сказать), мне кажется, больше о создании чего-то, что просто работает, на начальном уровне, везде, с помощью самых основных доступных методов, чтобы обеспечить все функциональные возможности, которые пользователь необходимо. Затем к этому можно добавить аккуратные маленькие ненавязчивые помощники, стилизацию и т. Д., Которые фактически улучшают взаимодействие с пользователем рассматриваемого приложения, а не просто делают его едва пригодным для использования. "Это выглядит круто. Работает ли это в IE6. О да.
Я думаю, что, возможно, приведение стиля в качестве примера обоих терминов в верхних двух ответах здесь как бы упускает из виду реальную основную проблему юзабилити, которую прогрессивное улучшение часто решает по самой своей природе, где постепенная деградация игнорируется до тех пор, пока что-то пойдет не так.
Рана над...
Под постепенным ухудшением понимается практика построения вашей веб-функциональности, чтобы она обеспечивала определенный уровень взаимодействия с пользователем в более современных браузерах, но она также будет постепенно снижаться до более низкого уровня пользовательского опыта в старых браузерах. Этот более низкий уровень не так удобен для посетителей вашего сайта, но он все же предоставляет им основные функциональные возможности, которые они пришли на ваш сайт для использования; вещи не ломаются для них.
Прогрессивное улучшение похоже, но оно работает наоборот. Вы начинаете с установления базового уровня взаимодействия с пользователем, который будут доступны всем браузерам при отображении вашего веб-сайта, но вы также создаете более продвинутые функциональные возможности, которые будут автоматически доступны браузерам, которые могут его использовать.
Другими словами, постепенная деградация начинается со сложного состояния сложности и пытается исправить это для меньшего опыта, в то время как прогрессивное улучшение начинается с очень простого, рабочего примера и допускает постоянное расширение для будущих сред. Изящная деградация означает "оглядываться назад", тогда как постепенное повышение означает "смотреть вперед", сохраняя при этом ноги на твердой поверхности.
Изящная деградация
Постепенное ухудшение - это способность компьютера, машины, электронной системы или сети поддерживать ограниченные функциональные возможности, даже если большая их часть была разрушена или выведена из строя. Целью постепенной деградации является предотвращение катастрофического отказа.
Изящная деградация является одним из решений. Это практика создания веб-сайта или приложения, поэтому он обеспечивает хороший уровень взаимодействия с пользователем в современных браузерах. Тем не менее, он будет грациозно ухудшаться для тех, кто использует старые браузеры. Система может быть не такой приятной или красивой, но основные функции будут работать на старых системах.
Простой пример - использование 24-битных альфа-прозрачных PNG. Эти изображения могут быть отображены в современных браузерах без проблем. IE5.5 и IE6 будут показывать изображение, но эффекты прозрачности потерпят неудачу (его можно заставить работать при необходимости). Старые браузеры, которые не поддерживают PNG, будут показывать альтернативный текст или пустое место.
Разработчики, использующие постепенную деградацию, часто указывают уровень поддержки своих браузеров, например браузеры 1-го уровня (лучший опыт) и браузеры 2-го уровня (ухудшенный опыт).
Прогрессивное улучшение
Прогрессивное улучшение - это стратегия для веб-дизайна, в которой особое внимание уделяется доступности, семантической разметке HTML, а также внешним технологиям таблиц стилей и сценариев. Прогрессивное улучшение использует многоуровневые веб-технологии, которые позволяют каждому получить доступ к основному контенту и функциональным возможностям веб-страницы, используя любой браузер или подключение к Интернету, а также предоставляют расширенную версию страницы для пользователей с более продвинутым браузерным программным обеспечением или большей пропускной способностью.,
Прогрессивное улучшение похоже на постепенную деградацию, но в обратном направлении. Веб-сайт или приложение установит базовый уровень взаимодействия с пользователем для большинства браузеров. Затем будет добавлена более продвинутая функциональность, если браузер ее поддерживает.
Прогрессивное улучшение не требует от нас выбора поддерживаемых браузеров или возврата к макетам на основе таблиц. Мы выбираем уровень техники; т. е. браузер должен поддерживать HTML 4.01 и стандартный запрос страницы / ответы.
Возвращаясь к нашему примеру с изображением, мы можем решить, что наше приложение должно работать во всех графических браузерах. Мы могли бы использовать GIF-изображения низкого качества по умолчанию, но заменить их на 24-битные PNG, если браузер их поддерживает.
связи
Википедия: прогрессивное улучшение и постепенная деградация (Fault_tolerance)
Источник: Блог Sitepoint
Я нахожу, что это имеет отношение - вы говорите: "Хорошо, мой сайт работает с Lynx, пользователи могут делать все, что я хочу, чтобы они могли делать, теперь давайте добавим немного шума", или вы говорите: "Хорошо, мой сайт работает" в Firefox теперь давайте попробуем исправить это для людей, которые не хотят использовать это / которые отключают javascript/etc"
Чтобы сделать это проще, просто установите бар прямо вверху, тогда вы можете игнорировать прогрессивное улучшение. когда выйдет новая функция, поднимите планку;)
или, в качестве альтернативы, установите свой бар на самый низкий уровень (возможно, рысь?) и просто используйте прогрессивное улучшение.