From 668bc945dde0261ec7999a6599aac9f9db29d38f Mon Sep 17 00:00:00 2001 From: Regis Houssin <regis@dolibarr.fr> Date: Mon, 11 Oct 2010 13:02:42 +0000 Subject: [PATCH] Qual: add cache in autocompleter for minimize the request --- htdocs/lib/ajax.lib.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/htdocs/lib/ajax.lib.php b/htdocs/lib/ajax.lib.php index a0c6b6b0e01..e64e78cf796 100644 --- a/htdocs/lib/ajax.lib.php +++ b/htdocs/lib/ajax.lib.php @@ -88,9 +88,20 @@ function ajax_autocompleter($selected='',$htmlname,$url,$option='') $script.= '<script type="text/javascript">'; $script.= 'jQuery(document).ready(function() { + var cache = {}; jQuery("input#search_'.$htmlname.'").autocomplete({ source: function( request, response ) { + if (cache.term == request.term && cache.content) { + response(cache.content); + return; + } + if (new RegExp(cache.term).test(request.term) && cache.content && cache.content.length < 13) { + response($.ui.autocomplete.filter(cache.content, request.term)); + return; + } jQuery.get("'.$url.($option?'?'.$option:'').'", { '.$htmlname.': request.term }, function(data){ + cache.term = request.term; + cache.content = data; response( jQuery.map( data, function( item ) { if (data.length == 1) { jQuery("#search_'.$htmlname.'").val(item.value); -- GitLab