Javascript Ajax Изящная деградация, с разными страницами? - PullRequest
3 голосов
/ 06 октября 2009

Я начинаю уделять немного больше внимания тому, чтобы сделать мой javascript и ajax изящным. Что более рекомендуется:

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

Я склоняюсь к различным наборам страниц, потому что я чувствую, что это легче, и я получаю наилучшие результаты для каждого типа пользователя (js-enabled или js-disabled). Вы согласны со мной, а если нет, то почему вы не согласны?

Я также беспокоюсь о попытках взлома. Например, хакер добирается до версии с поддержкой js, затем отключает свой js. Есть мысли на этот счет? Я не знаю много о взломе, но это может быть проблемой безопасности, если я иду с отдельными версиями?

Заранее спасибо

Ответы [ 3 ]

5 голосов
/ 09 ноября 2009

Хотя это не очень хорошо работает для существующих сайтов, часто более полезно использовать парадигму Progressive Enhancement : создайте сайт так, чтобы он работал без специальных надстроек, затем начните размещать свой удивительный эффект на вершина этого.

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

Однако для существующего сайта это будет зависеть от того, какие функции предоставляет ajax. В общем, вы должны стремиться отразить всю функциональность ajax с отключенным js. Если у вас есть дыры в безопасности в вашей js-версии, то, скорее всего, в вашей не-js-версии. AJAX не может получить доступ к чему-либо, к чему нельзя получить доступ с помощью обычного URL.

2 голосов
/ 09 ноября 2009

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

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

0 голосов
/ 28 августа 2010

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

Это было реализовано на этих двух сайтах (о которых я знаю) http://wbhomes.com.au и http://www.balupton.com

...