Должен ли я идти с AJAX и JQuery сложности и скорости или простоты GET? - PullRequest
0 голосов
/ 26 марта 2011

Если пользователь пытается войти в систему и не удается войти в систему, на странице должно появиться сообщение об ошибке.Я вижу два основных способа сделать это: использовать действие формы на странице HTML и в скрипте php, если информация для входа неверна, перенаправить с заголовком на страницу входа со значением $ _GET, например loginfailed.Страница входа будет проверять это значение, и если оно существует, то будет отображаться ошибка.

Второй способ, который я вижу, это вообще не использовать форму и вместо этого использовать JQuery для захвата нажатия кнопки отправки ииспользуйте AJAX, чтобы определить, произошла ли ошибка.Php-файл будет отображать состояние, а javascript-файл будет интерпретировать его, и, если он не авторизован, он будет использовать JQuery для добавления сообщения об ошибке на страницу.

Теперь я перейду к тому, что я чувствуюПлюсы и минусы каждого метода:

Метод 1 Плюсы:

  • Очень упрощенно, без необходимости в JQuery, Javascript и AJAX.
  • Состояние ошибки также отображается в URL-адресе.

Способ 1 Недостатки:

  • Поскольку существует вызов заголовка, перенаправлениеявляется необходимым.Кроме того, страница входа должна быть перезагружена.Это небольшая страница, но, тем не менее, это перезагрузка.
  • Сообщение о статусе отображается в URL.Это означает, что пользователи могут вводить сообщения о состоянии в URL-адрес и получать сообщения об ошибках на странице для ошибок, которые на самом деле не возникали.Это проблема?Может быть.Возможно, нет.

Способ 2 Плюсы:

  • Так как он использует AJAX, нет необходимости загружать другой URL и, следовательно, не нужно никаких дополнительныхстраница загружена.
  • Этот метод использует JQuery для обновления страницы с сообщением об ошибке, поэтому перенаправление не требуется.
  • Состояние ошибки не отображается в URL.

Способ 2 Минусы:

  • Гораздо сложнее, чем первое решение.
  • Требуется внешний файл javascript, который необходимо загружать каждый раз при входе в систему.Доступ к странице осуществляется независимо от того, используется она или нет.
  • Поведение кнопки отправки по умолчанию отменяется и аннулируется.Его единственное поведение связано с его взаимодействием с файлом javascript.

Что бы сделал SO?Я хотел бы избежать ответов, таких как «это зависит от того, сколько трафика будет иметь ваш сайт», если это вообще возможно.

Ответы [ 2 ]

3 голосов
/ 26 марта 2011

Всегда используйте самое простое из возможных решений до тех пор, пока / или у вас нет веской причины поступить иначе.Лучше закончить что-то, что, возможно, (и, возможно, не) не так идеально, как, в конце концов, поставить что-то позолоченное, может быть.

Кроме того, я обычно предпочитаю следовать прогрессивной стратегии улучшения, так что все работает без Javascript, а затем добавьте Javascript, чтобы он работал лучше.Это дает дополнительное преимущество функциональности, даже когда / где Javascript отключен.

0 голосов
/ 26 марта 2011

Я думаю, что вы не поняли дело.

  • Логин не является чем-то самодостаточным. Используется для изменения состояния сайта. Но без перезагрузки он не изменится. Итак, перезагрузка страницы все равно требуется. или пользователю придется сделать это вручную, чтобы получить доступ к авторизованному разделу.

  • Является ли вход в систему функцией сайта only , которая использует JQuery / AJAX? Если нет - почему вы беспокоитесь о загрузке этой библиотеки один раз, когда, скорее всего, она будет загружена на каждой странице?

  • Все еще есть клиенты с отключенным JS по разным причинам. Хорошее веб-приложение всегда впускает этих клиентов, даже за меньшую функциональность.

Последний вопрос - главный, самый важный. Почему выбирать между двумя? Почему бы не использовать оба? - один для совместимости, а другой для удобства использования?

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

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