ajax и никаких форм, что будет? - PullRequest
1 голос
/ 18 февраля 2010

Я заметил, что на моем сайте нет ни одного <form>, за исключением входа в систему. Я не уверен, как и почему это произошло, но я обнаружил, что использую jquery и ajax, чтобы публиковать все, а затем обновлять (или нет, если я не нужно). Как и почему от этого пострадает пользователь?

Некоторые из моих «форм» включают

  1. Оставить комментарий на странице
  2. Удаление сообщений
  3. Отправка личного сообщения (которое я затем делаю document.location = nextPage)
  4. Пометка как любимая.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2010

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

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

Кроме того, не используя формы, вы отключаете функцию отправки по умолчанию (нажимая <enter>), как Дуг Нейнер указал

4 голосов
/ 18 февраля 2010

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

Обтекание полей формы тегом form и наличие элемента submit input (даже если это display:none) позволяет использовать действие отправки по умолчанию для enter или return. Если вы сделаете это, вы просто вызовете preventDefault() в обработчике событий submit(), чтобы остановить реальную отправку, и вместо этого создадите AJAX.

Хорошо, назад к мысли об отключении JS. Вы должны сделать выбор:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...