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