グーグル、フェイスブック、ツイッター、アマゾン、スタックオーバーフローなど、多くの場合、ログインフォームでAJAXの代わりに全ページのリロードを伴うフォーム送信を使用します。この質問を見ました( When AJAXフォームを送信するにはVS通常のページ送信 )と表示されますAJAXは、さまざまなフォームの状態をユーザー、だから私はこれらの主要なウェブサイトがこれに反対しているように思われる理由に興味があります。
私はそれを自分でやった。私の理由は:
ログインフォームが別のビューであった場合、ログインの前にアプリの動作に関するかなりの情報がブラウザーにダウンロードされ、潜在的なハッカーに見えるようになります。 (セキュリティが大きな懸念事項でした。)
私が使用していたセキュリティフレームワークには、通常のフォームの送信時にサーバーに送信されるログイン要求を処理する便利な方法がありました。アプリ内でそれを行うことはより多くの作業であり、その作業のバグはセキュリティホールになる可能性があります。ログインしていないユーザーをログインページにリダイレクトするなど、関連する機能も簡単でした。
他のフレームワークでも、通常のパターンは、「ユーザーはすでにログインしていますか」と「これはログインフォームの送信ですか」を、アプリケーションコードが実行される前に発生するセキュリティチェックとして扱うことです。
TL; DR:階層化されたソフトウェアアーキテクチャとセキュリティ境界。
この背後にUXの原則がありますか、それともおそらく技術的な理由ですか?
どちらでもない。時には、セキュリティがユーザビリティよりも優先されます。関連する例として、ユーザーがログインボタンをクリックした後のプロセスは、多くのパスワードを試行するユーザーを阻止するために、意図的に遅くなるように設計されている場合があります。 (正確には、パスワードは、検証に最速のアルゴリズムがかかる時間がかかるような方法で保存されます。)それがもっと速くなるかどうかを尋ねたくなるでしょう。セキュリティの専門家がそれを解決し、ユーザーが許容できる遅延時間を尋ねます。
私はログインのためにページのリロードを支持するUXの理由があるがあると主張します:
ページのリロードは一般に入力が受信および処理されたことをより適切に示します
もちろん、これはすべての入力に当てはまりますが、ログインはこの点に関して混乱に対してより敏感です。
したがって、ログインにajaxを使用する前に、私は非常に注意します(私はそれを正気に行うためにいくつかのアイデアを出しました here )。