クライアント側の JavaScript とサーバー側の Python の比較
登録フォームを作成したい場合、各方法で検証 (入力ミスのチェック) を行うことの長所と短所を教えてください。おすすめは何ですか?
クライアント側の JavaScript とサーバー側の Python の比較
登録フォームを作成したい場合、各方法で検証 (入力ミスのチェック) を行うことの長所と短所を教えてください。おすすめは何ですか?
サインアップ システムを作成するには、サーバー側 (バックエンド) コードが必要です。なんらかの方法でユーザーを作成し、ユーザーが入力したデータを保存する必要がありますが、これはクライアントでは実行できません。
サーバー側とクライアント側を混在させる最も一般的なケースは次のとおりです。
大多数のユーザーが JavaScript を有効にしており、そうでないユーザーにも優れた UX を提供することを気にしないと仮定すると、クライアントに詳細なエラー メッセージ (たとえば、エラーのあるフィールドの強調表示など) を提供することで、物事を簡素化できます。サーバー側の検証に失敗した場合に一般的なエラーメッセージを表示するだけで、側の検証ロジック。
ただし、クライアントで適切に検証できない場合 (AJAX を使用できるため、JS が有効になっている可能性は低いですが)、サーバー側の検証で適切なエラー メッセージが表示されることを確認する必要があります。ユーザーは何が悪いかを知っています。
ユーザーが大きなもの (ファイルのアップロードなど) を送信せず、無効な送信の場合にすべてのフォーム フィールドを再入力するクリーンな方法がある場合、最も簡単な解決策はサーバー側の検証のみを行うことです。これにより、検証の作成が回避されるためです。ロジックを 2 回 (サーバー側とクライアント側の両方のコードからアクセスできる抽象的な方法で指定する方法がない場合)。
別の可能性 - 特にパスワード フィールドが関係している場合の良い考えです (良い UX のためには、送信がうまくいかなかった後でもユーザーが入力したものを保持したいのですが、セキュリティの観点から、ユーザーのパスワードがキャッシュされないようにするために、パスワードを送り返すべきではありません)。どこか) - AJAX を使用してフォーム全体を送信し、たとえば、成功した場合はユーザーをリダイレクトする URL を含む JSON ペイロードを送り返し、失敗した場合はエラーのリストを送り返します。これには特に、AJAX リクエストの場合は JSON ペイロードを返すか、通常のリクエストの場合は完全な HTML ページを返すように、サーバー側のコードを簡単に記述できるという利点があります。
JavaScript
- 長所:
テストと実装が簡単です。フォームの検証を行う場合、JavaScript は瞬時に検証を行うことができ、正規表現チェックと DOM トラバーサル (jQuery) のための多くのユーティリティを備えています。また、処理はクライアントにオフロードされます (これは無視できるかもしれませんが)。
- 短所:
JavaScript をサポートしていないユーザー
Python
- 長所:
JavaScript を使用しないユーザーのサポート。隠されているため、より安全です。
- 短所:
結果を表示するには、ページを更新する必要があります。一部のユーザーにとっては、すべてのフィールド (パスワード フィールドなど) を保存する必要がないため、イライラすることがあります。
私は JavaScript を即時のフィードバックに使用し、Python を最終結果のエラー チェックと JavaScript を使用しないユーザーのフォールバックに使用します。