答えて

2

ほとんどのクライアント側のスクリプトを捨てて、現在はサーバー側で行うだけです。ポストを送信するときにajaxを使うことができるので、ページ全体をリロードするよりもレスポンスが軽量になります。

2

クライアント側の検証を無効にすることができるため、サーバー側の検証が必要です。

クライアント側の検証は必須ではありませんが、サーバーにフォームを送信して結果ページが戻ってくるのを待つ必要がなくなるため、エラー処理中のアプリケーションの応答性が向上します。

よく設計されたアプリケーションは、両方を使用します。

Ajaxは、ユーザー登録フォームにユーザー名が重複していないかどうかを確認するなど、特定の種類の検証に使用できます。しかし、フィールドに数字だけが含まれているかどうかをチェックするなどの基本的な検証は、それなしで行う必要があります。

+0

これを求めているものを行うために検証コントロールを持っていました。それは両者の定義だけであり、両者のロジックの重複を防ぐ方法を尋ねています。 –

0

ほとんどの場合、サーバー側で検証を行うのが最善です。 AjaxやPHPのスティッキーフォームなど、これを簡単にするためのさまざまなオプションがあります。私は個人的には、ユーザーがJavaScriptを無効にするオプションを持っており、サーバー上で検証を無効にできないため、サーバー側で検証を行う傾向があります。

5

クライアント側サーバー側検証構成からの検証。

は今、私はあなたが使用している言語やフレームワークを知りませんが、多分この記事は助けになることができます。彼はベースのクライアント側の検証を生成するために、いくつかの接着剤をjQueryを使って一緒に城検証コンポーネントを使用して追加していますhttp://www.emadibrahim.com/2008/09/08/client-server-side-validation-in-aspnet-mvc/

サーバー側の検証属性に表示されます。それはasp.net mvc用です。

/Asger

+0

私はMSではないものを探しています。この例は、物事を全体的に単純化するようなものではありませんでした。 – josh

+0

他のプラットフォームにも転送することが原則であるはずです...どのような言語/フレームワーク/プラットフォームが好きですか? – asgerhallas

2

他の人が述べたように、クライアント側の検証は、利用者を助けるためにすぐに反応するが、実際の検証は、サーバー側にあるアプリケーションを支援することであるとして、あなたは、重複を維持する必要があり、それが検証されるまで渡されたものを信用するべきではないからです。おそらく、サーバー側でより広範な検証を行うでしょう。たとえば、データソースに対してチェックする必要がある場合、たとえば、サーバー側にユニークなユーザー名がありますが、ユーザー名が十分に長いか、電子メールアドレスは、クライアント側とサーバー側で実行できます。

特に、正規表現を使用している場合は、重複があるとコメントになる傾向があります。

良い単体テストは、これらの2つが常に同期していることを確認するのに役立ちます。

+0

サーバー側のバリデータとクライアント側のバリデータの両方をテストする単体テストはどのように記述しますか?通常の場合のように、重複した単体テスト(各言語に1つ)のセットで終わることになり、それらの単体テストが同期しなくなる可能性があります。 –

+0

2つのテストがありますが、サーバーサイドはクライアント側よりも多くのチェックを行います。クライアントはデータがほぼ正しいかどうかを調べるだけですが、絶対的な修正はサーバーの仕事です。 –

0

あなたができることは、クライアント側の検証がAJAX経由で呼び出すことができるWebサービスによって実行されるサーバー側の検証ロジックを持ち、サーバーにポストバックするときです。

0

これはあなたの質問に答えるものではありませんが、読者を混乱させないようにタイトルを変更したい場合は、「サーバとクライアント側で同期をとる方法は?「

タイトルのアイデアは、a)は、あなたが尋ねるまたはb)読者は、彼/彼女はあなたの質問を理解するために、あなたのコンテンツを読むために持って実現しますされているものの読者大まかなアイデアを与えるのいずれかにある。

2

私は思います最も良い方法は、両方を提供するコンポーネントを使用することです。そのコードはテスト済みで、メンテナンスする必要はありません。私は過去に大きな成功を収めたPeter Blum'sコントロールを使用しました。 2つのコードベースを提供したい場合は、Script#というツールがあります。これはC#をJavascriptにコンパイルするのに役立ちます(実際のコンパイルではなく翻訳を行います)が、この状況でどれくらい効果があるかわかりません。

関連する問題