2017-10-29 2 views
-1

私は、クライアント側のバリデーションの唯一の利点は、ページがリロードされないようにすることだと思います。クライアント側のバリデーションとAjaxリクエスト

私はphpファイルにリクエストを送信するためのajax関数があります。サーバーは検証を実行し、エラーが見つかった場合はそのエラーをクライアントに返します。エラーメッセージを受け取ったAjaxは、それらをブラウザに出力します。

私は、Ajaxによって提出される前にクライアント側の検証も実行する人もいることを読んだことがあります。再ロードせずにサーバーからデータを返すことができるのはなぜですか? ajaxは十分ではありませんか?

+0

多くの良い質問は、専門家の経験に基づいた意見をある程度発生するが、この質問に対する答えは、ほぼ完全な意見ではなく、事実、参照、または特定の専門知識に基づいてする傾向があります。 –

答えて

1

アヤックスは十分ですが、あなたはそれがつもりポストだし、問題がある場合、それはサーバがリクエストと検証を提供しています後に提出することを失敗するコンテンツの大部分を持つ大規模なフォームを持っていると言います。それは私が思うサーバーリソースの無駄です。したがって、この場合、クライアント側の検証を追加する方がよいでしょう。

+0

これは、多くのユーザーがシステムを正しく使用している場合にのみ発生します。 – morbidCode

+0

また、私のフォームには40フィールドが含まれています。あまりにも大きすぎますか? – morbidCode

1

クライアント側の検証では、ブラウザレベルですばやく応答することで、より優れたユーザーエクスペリエンスを提供できます。クライアント側検証を実行すると、すべてのユーザー入力がユーザーのブラウザで検証されます。クライアント側の検証では、サーバーへのラウンドトリップが必要ないため、サーバーのパフォーマンス向上に役立つネットワークトラフィックが発生します。このタイプの検証は、JavaScript、VBScript、HTML5などのスクリプト言語を使用して、ブラウザ側で実行されます。

たとえば、ユーザーが無効な電子メールの形式を入力した場合、あなたは彼らがフォームを送信する前に、すぐに次のフィールドへのユーザーの移行前に、ユーザーように、すべてのフィールドを修正することができmesseageエラーを表示することができます。

主にクライアント側の検証では、ユーザーがJavaScriptをオフにするので、もし、それがeasilly迂回し、サーバーへの危険な入力を提出することができ、JavaScriptの言語に依存します。したがって、クライアント側の検証では、サーバーリソースやデータベースに対する悪意のある攻撃からアプリケーションを保護することはできません。

両方の検証メソッドは、独自の意味を持っているとして、サーバー側の検証がより安全であることをお勧めします!

関連する問題