J'utilise twitter bootstrap typeahead pour afficher certaines données du serveur, le problème est quand l'utilisateur tape une lettre typeahead fait un appel ajax au serveur et quand j'essaye de taper 2 ou 3 lettres rapidement cela fera 2 ou 3 ajax appels au serveur, est-il possible de faire un délai lorsque l'utilisateur est en tapant les lettres pour faire un seul appel ajax au serveurTwitter bootstrap typeahead délai
mon code au moment:
$('#SEARCH-INPUT').typeahead({
source: function (query, process) {
jQuery.ajax({
type: "GET",
url: "/organisations/search",
data: {search_name: $("#SEARCH-INPUT").val()},
beforeSend: function(){
$("#SEARCH-LOADING").show();
},
success: function (data) {
organisations = [];
organisations_hash = {};
$.each(data, function(i, item){
organisations_hash[item.name.toUpperCase()] = item.id;
organisations.push(item.name);
});
organisations.sort();
$("#SEARCH-LOADING").addClass("hidden");
process(organisations);
},
error: function(){ alert("error");},
async: false
});
}
,updater: function (item) {
$("#SEARCH-INPUT").val(item);
$("#SEARCH-BUTTON").click();
return item;
}
,items: 9
,minLength: 1
});
merci, fonctionne parfaitement – Maki
Il a un défaut - si vous avez un ensemble minLength, puis lorsque vous faites rapidement un retour arrière dans le texte entré et effacez l'entrée, le délai d'attente finit par tirer. Je m'attendrais à ne pas ... voir cet exemple: http://jsfiddle.net/nnPVn/16/ –
La question ci-dessus n'a pas ce problème parce que le minLength est 1 (le défaut). – MrBoolean