Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top