Je travaille à la création d'un plugin jQuery AutoSuggest, inspiré par les projecteurs d'Apple.AutoSuggest efficace avec jQuery?
Voici le code général:
$(document).ready(function() {
$('#q').bind('keyup', function() {
if($(this).val().length == 0) {
// Hide the q-suggestions box
$('#q-suggestions').fadeOut();
} else {
// Show the AJAX Spinner
$("#q").css("background-image","url(/images/ajax-loader.gif)");
$.ajax({
url: '/search/spotlight/',
data: {"q": $(this).val()},
success: function(data) {
$('#q-suggestions').fadeIn(); // Show the q-suggestions box
$('#q-suggestions').html(data); // Fill the q-suggestions box
// Hide the AJAX Spinner
$("#q").css("background-image","url(/images/icon-search.gif)");
}
});
}
});
La question que je veux résoudre bien & avec élégance, ne tue pas le sever. En ce moment, le code ci-dessus frappe le serveur chaque fois que vous tapez une clé et n'attend pas que vous ayez fini de taper. Quelle est la meilleure façon de résoudre cela? A. Tuer une requête AJAX précédente? B. Un type de mise en cache AJAX? C. Ajout d'un certain type de délai pour soumettre uniquement .AJAX() lorsque la personne a cessé de taper depuis 300ms environ?
Avez-vous regardé le nouveau plugin autocomplete de jQuery UI http://jqueryui.com/demos/autocomplete/? – PetersenDidIt
jQuery n'est pas un acronyme. – SLaks
@nobosh: Je suis après avoir implémenté autosuggest efficace sans tuer le serveur et si vous êtes en mesure d'arriver avec quelque chose que vous pensez qu'il est efficace, vous partager le code du serveur d'exemple? - Merci. –