2009-06-10 6 views
1

私は登録ページを設定しており、主にデータを検証するためにPHPを使用しています。jqueryとphpを使用して負荷を軽減する

いくつかの検証にクライアント主導言語を使用すると、サーバーからの負荷が軽減されることに気付きました。 私はjqueryについて多くの知識を持っていませんが、電子メールの正しい構文(ex、1 '@'と面白い文字はありません)を決定するコードを探しています。

さらに、jqueryには、特定のイベントの後(クリック時、キーアップ時)に、PHPスクリプトをプリフォームしてリロードせずに結果を表示する関数がありますか?私は、ユーザーにもっと複雑な機能(電子メールのDNSを調べて、その本物のものが存在するかどうかを確認するなど)をユーザーに速やかにフィードバックできるようなものを探しています。

誰かが私を指摘できますかこれに関するリソースに?

答えて

9

はあなたがここで見つけることができますjqueryのための非常に広く使用されている検証プラグインがあります:

http://plugins.jquery.com/project/validate

それを内蔵多くの「共通」のバリデーションルールが含まれている、とあなた自身を追加することができます。電子メールはデフォルトでそこにあります。

しかし、常にサーバー側で検証することを忘れないでください。クライアント側の検証を追加して応答性を向上させることはできますが、悪意のあるユーザーは簡単にjavascriptの検証をバイパスできます。

17

クライアント側の検証は決して信頼されるべきではありませんが、ユーザーエクスペリエンスを高めるために存在する必要があります。クライアント側のコードが簡単に回避されるので、サーバー上で検証を実行する必要があります。

+1

確かに、サーバー側の検証なしでは絶対に行かないでください。しかし、クライアント側を置くことで、ユーザーにエラーを指摘するのがより簡単になり、ページの使用感が向上します。 –

+0

+1 *決して* *今まで* *今まで*ダークサイドから何かに頼っている。それは信用できません。 –

+0

データ検証ルーチンでパフォーマンスが低下または苦しんでいる場合は、検証は通常「高価な」タスクではないため、これらのルーチンをプロファイルして問題を見つける必要があります。 –

0

PHPとjsの両方で検証する必要があります。私はいくつかの場所を見ました/まだiE5を使用している人々、私はこれらのケースではjsを信頼しません。

1

答えになるTMは検証プラグインであり、常にサーバー側を検証します。クリックイベント、サーバーへのAJAXを行い、その後、メッセージを表示する方法

:あなたが何かをより複雑にしたい場合

$("a.dnscheck").click(function() { 

    $.get('http://blah.com/dnscheck.php', 
      { 'email' : $("input.email").val() }, 
      function(data) { 
       //called on ajax response 
       if(data == 'valid') { 
        //update dom with ok message 
       } else { 
        //update dom with bad email message 
       } 

      }); 
}); 

http://docs.jquery.com/Ajaxを参照してください。

関連する問題