From: Benjamin Mako Hill Date: Sun, 8 Apr 2012 19:33:59 +0000 (-0400) Subject: improve the perfromance of the javascript autocomplete lookup X-Git-Url: https://projects.mako.cc/source/scuttle/commitdiff_plain/b1bb03ecf9779a54a47a50f3b98cfdb59efb5b76 improve the perfromance of the javascript autocomplete lookup This was performing poorly on large lists. The delay can be set down very low because the list is stored entirely in memory. The current code only does the lookup when there are >2 characters typed in for a particular tag. --- diff --git a/templates/dynamictags.inc.php b/templates/dynamictags.inc.php index 51d12b9..d7f094a 100644 --- a/templates/dynamictags.inc.php +++ b/templates/dynamictags.inc.php @@ -138,11 +138,16 @@ $( "#tags" ) } }) .autocomplete({ - minLength: 0, + minLength: 2, + delay: 50, source: function( request, response ) { - // delegate back to autocomplete, but extract the last term - response( $.ui.autocomplete.filter( - availableTags, extractLast( request.term ) ) ); + // if the term is >2 in legth delegate back to autocomplete + if (extractLast ( request.term ).length < 3) { + response( [] ); + } else { + response( $.ui.autocomplete.filter( + availableTags, extractLast( request.term ) ) ); + } }, focus: function() { // prevent value inserted on focus