Лучший способ проверить форму для обязательных полей? - PullRequest
1 голос
/ 07 августа 2009

Просто краткий вопрос передового опыта: как лучше всего выполнить обязательную проверку поля для формы? Я вижу 3 варианта:

  1. Серверная сторона. перезагрузите страницу с сообщением об ошибке.
  2. Javascript (на стороне клиента) для удобной не-перезагрузки, дублирования требований на стороне сервера и очистки ввода.
  3. AJAX - лучший из двух миров, используйте JS, чтобы спросить сервер, удовлетворено ли обязательное поле.

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

Ответы [ 4 ]

4 голосов
/ 07 августа 2009

Общее правило должно заключаться в том, что Javascript должен «дополнять» проверку на стороне сервера. Потому что Javascript можно отключить или даже испортить. (Greasemonkey?)

Я бы сказал, jQuery Validator, а затем проверка на стороне сервера. Таким образом, люди с включенным Javascript получают преимущество, заключающееся в том, что им не нужно обновляться для получения ошибок, но это плавно разлагается.

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

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

2 голосов
/ 07 августа 2009

Мои мысли в вашем списке

  1. Самый простой в реализации. Должно потребоваться очень мало обращений к серверу как часть процесса проверки.
  2. Хороший пользовательский опыт за счет дублирования правил валидации. Хотя ваш серверный код может генерировать для вас проверки javascript, не все может быть имитировано в javascript (например, некоторые правила PCRE, предварительная проверка доступности имени пользователя или проверка орфографии). Тем не менее, этот метод должен быть достижим в 95% или более случаев.
  3. Удобный пользовательский интерфейс за счет увеличения объема HTTP-сообщений и сложности приложений. Плюсом здесь является то, что вы не дублируете никакие проверки - сервер обрабатывает все это. Недостатком является то, что вы увеличиваете сложность. Каждому циклу проверки требуется обратная связь с пользователем (т. Е. Текст «загрузка ...») и отработки отказа в случае сбоя запроса по какой-либо причине. Кроме того, некоторые проверки могут быть сложными для правильного выполнения, например, зависимые проверки (например, поле B требуется только в том случае, если поле A пустое)

Я не могу дать какую-либо конкретную рекомендацию, потому что я думаю, что это просто "зависит". Это ужасный ответ, но я думаю, что так оно и есть.

2 голосов
/ 07 августа 2009

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

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

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

Здесь на самом деле нет набора «лучший», просто выберите тот, который соответствует вашему бюджету времени и удобству использования.

1 голос
/ 07 августа 2009

Лучшее «лучшее»: что бы вы ни выбрали, убедитесь, что вы включили проверку на стороне сервера в свое решение.

Связанный: Проверка подлинности ClientSide и ClientSide на JavaScript

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