Прогрессивное улучшение или отдельная разметка

#html #markup #progressive-enhancement

#HTML #разметка #прогрессивное улучшение

Вопрос:

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

Мне нужно создать веб-портал, который будет использовать все «навороты», предлагаемые ajax и Javascript, оставаясь при этом доступным и функциональным для пользователей, у которых может не быть Javascript и / или которые используют устаревшие системы. Насколько я понимаю, у меня есть два пути, по которым я могу пойти.

  1. «Прогрессивное улучшение»: при таком подходе у нас будет один набор разметки, он будет служить полнофункциональным классическим html-порталом. Затем клиентская библиотека улучшит существующую разметку, чтобы переопределить функциональность html и заменить ее расширенной функциональностью Javascript.

  2. Вторая идея заключается в том, чтобы иметь две клиентские библиотеки, одну для портала с поддержкой Javascript, а другую для классического HTML.

Есть плюсы и минусы, которые я вижу.

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

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

В настоящее время я склоняюсь к сценарию 1, но в сценарии 2 есть некоторые положительные стороны, которые мне нравятся, такие как простота добавления третьего варианта. Честно говоря, я разрываюсь между двумя возможностями, поскольку обе жизнеспособны. Какой сценарий имеет наибольший смысл?

Ответ №1:

Здесь можно было бы пойти по пути прогрессивного улучшения, но это довольно новая концепция. Это действительно зависит от предпочтений ваших пользователей. Если ожидается, что большинство (или значительная доля) будет использовать множество разных мобильных телефонов — я бы рекомендовал для этого прогрессивное улучшение с помощью библиотеки. Обратите внимание на jQuery Mobile, поскольку он довольно многообещающий и скоро будет выпущен.

Вторая идея стоит того, только если основные функциональные возможности или преимущества приложения требуют javascript. Тогда создание интерфейса низкого уровня (:P) для некоторых пользователей кажется разумным. Gmail — хороший пример. Его возможности зависят от JS, и без них не было бы ничего интересного, так что есть и плохая версия, которая хорошо работает даже в lynx.

Комментарии:

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