title: Optimised search using Ajax and keypress
body: <p>I have the following code that I want to use to search a database as a user is typing into a textbox. The code below works fine but it seems a little inefficient, as if a user is typing really fast. I am potentially doing many more searches than necessary. So if a user is typing in "sailing", I am searching on "sail", "saili", "sailin", and "sailing".</p>
  
  <p>I wanted to see if there was a way to detect any particular time between keypresses so only search if user stops typing for 500 milliseconds or something like this.</p>
  
  <p>Is there a best practice for something like this?</p>
  
  <pre><code>$('#searchString').keypress(function(e) {
  
      if (e.keyCode == 13) {
  
          var url = '/Tracker/Search/' + $("#searchString").val();
          $.get(url, function(data) {
              $('div#results').html(data);
              $('#results').show();
          });
      }
      else {
  
          var existingString = $("#searchString").val();
          if (existingString.length &gt; 2) {
              var url = '/Tracker/Search/' + existingString;
              $.get(url, function(data) {
                  $('div#results').html(data);
                  $('#results').show();
              });
          }
      }
  </code></pre>