2012-04-27 7 views
0

は、ソート、検索、およびデータのセットをページ分割することができ、アプリケーションを作成するためのソリューションをウォークスルーした理由を探しています、生産のためのソリューションをお勧めしません。 。 AJAX検索を経由する場合は、彼は、ユーザーが検索ボックスに入力に入る瞬間を検索した結果を表示するソリューションを提供します。ここで彼の解決策は次のとおりです。Railscastは、私がこの<a href="http://railscasts.com/episodes/240-search-sort-paginate-with-ajax?view=asciicast" rel="nofollow">railscast</a>私たちの良い友人のミスター・ベイツで

$('#products_search input').keyup(function() { 
    $.get($('#products_search').attr('action'), &crarr; 
    $('#products_search').serialize(), null, 'script'); 
    return false; 
}); 

しかし、彼はこれが唯一の迅速なデモで、これを行うための最善の方法ではないことに注意してください」と述べ、あなたがこのような何かを行う場合に使用できるいくつかのjQueryのプラグインがあります。プロダクションアプリで。私はなぜこれが生産に適さないと彼が信じるかについての説明を探しています。前もって感謝します!

答えて

1

私は、このソリューションで見る二つの大きな問題があります。最初は、あなたがこれを行うための最も効率的な方法ではありませんHTTP(AJAX)要求キーが押されるたびに、作っているということです。第二は、あなたは基本的に対応してevalを呼び出している、そしてそれはあなたが実行されないようにするコードを実行する悪意のあるユーザーにつながることができますようevalが悪いということです。改善に

ヒント:

  • は、適切なJSONパーサーを使用し、バックJSONなどのデータを渡します。
  • スロットル要求(あなたが$.getJSON使用することができます) - すべてのkeyUpイベントでそれをしないし、多分タイマーを起動して、何のキーが、それはたくさんのことはありませんつまり、最後の1秒に押されていない場合にのみリクエストを送信速く入力する人々を求めています。
  • キャッシュ応答。すでに何かを検索したことがある場合、データを2回取り出すことはありません。このセッションで以前の呼び出しの注釈(JSオブジェクト内)とその結果を保持します。
関連する問題

 関連する問題