2012-03-16 10 views
1

ajaxを介して送信されたフォームを処理するためのベストプラクティスとは何か考えられます。具体的には、私はエラーを含むフォームを処理する最良の方法は何か不思議です。ajaxを介して送信されたフォームのエラーを処理するためのベストプラクティス?

A.サーバはフィールド名/エラーメッセージの名前と値のペアのJSONドキュメントを返します:

は、私はエラーが発生してフォームを送信時に2の可能なオプションを参照してください。これはクライアントサイドで処理する必要があり、フォームの先頭にエラーメッセージを付け、フォームのスタイルを変更する(たとえば、エラークラスをフィールドに追加するなど)フォームを変更する必要があります。

OR

B.サーバーは、単にエラーメッセージやスタイル事前に適用して、フォームを含む新しいHTMLフラグメントを返します。フォームをスワップアウトすることを除いて、クライアント側で何も処理する必要はありません。

私にとってオプションBは、より簡単で簡単なオプションのようですが、「ベストプラクティス」ではないと感じています。いずれの方法についても賛否両論はありますか?

答えて

1

ロジックの分離はここでは巨大なものです。

プロジェクトが成長するにつれ、一般にフロントエンドチームとバックエンドチームが存在します。ウェブサイトが大きく変身するのを想像しても、ロジックは同じままです。オプションBは、レイアウトがサーバー側で強制されるときにスタイルを変更するのが難しいです。

アプリケーションロジック(この場合はサーバ側の検証です)は、プレゼンテーションレイヤーとは別にする必要があります(この場合、ブラウザで表示されるhtml/cssです)。

しかし、一日の終わりには、最高の品質のコードでアカデミー賞を獲得しようとせず、請求書を受け取った場合、最も速い方法で結果を得ることができます。

0

私は最初のオプションを使用します。 2番目のオプションは、サーバー上の負荷を増加させるだけです。常に避けたいものです。さらに、サーバー側でスタイリングが行われた場合、あなたのウェブサイトは正確にモジュール式ではありません。すべてのスタイリングはフロントエンドでのみ行うべきです。

0

これは意見の質問のようなものですが、トピックについていくつかの客観的なことがあります。あなたの最初の選択肢である純粋なJSONの選択は、HTTPリクエストを可能な限り小さく維持することに重点を置くアプリケーションに最適です。

フォームをサーバー側で処理してから、新しいフォームをAJAXに返すという別の方法は、あまりにも多くの利点がないようです。あなたがそのルートに行くなら、なぜAJAXを気にしないのですか?なぜ、サーバーに定期的な形式の投稿をしないのですか?

私は通常、フロントエンドの検証とサーバー側の検証が好きです。このようにして、JSON呼び出しをすべて回避することができます。ただし、何かが有効ではない場合でも、誰かがそこに何かを潜んでいる場合に備えて、サーバー側コードが検証します。

+0

フォームが送信されたときに完全なページリフレッシュを実行したくないウェブアプリケーションのため、私はajaxを使いたいと思っています。フォームを含むiframeを使用することを検討しましたが、私はまだajaxルートに行きたいと思います。 – Groady

+0

@Groady JSONまたはHTMLをAJAXレスポンスとして使用するのは状況に依存します。 HTMLでフォーム全体を返すことは、私に過労のように思えます。 HTMLフラグメントを返すことは私には意味があり、それは開発を単純化することができます。 JSONは送信が高速ですが、HTML要素を作成するために解析する必要がある場合、ユーザーは高速なコンピュータを使用しないことがあります。あなたのオプションを測り、適切な方法を選択してください。 – hradac

0

フロントエンドで検証用のJSON方式を確立しました。あなたが各フィールドでチェックしているもののような基本的なもの、オプションのフィールドなど...それはフォーム上のすべてのページに焼き付けられます。その後、フロントエンドの開発者に事前検証をさせて、どのような方法でも不必要な呼び出しを避けるようにしてください。

あらかじめビルドされたエラーは、わたしが知っているベストプラクティスではなく、ひどい方法ではありません(フォームにはフォームの場合は、UIのスタイルのマニュアルを投げる傾向があります)。時には、さまざまな問題に対してより詳細な、または異なるエラーを提供したいことがあります。

あなたのケーキを食べて食べることを常に目標にしています。

関連する問題