Ich habe eine Sucheingabe, die Daten von einer Eingabe an eine PHP-Datei sendet, während ich tippe. Die php-Datei führt eine Suche in meiner Datenbank durch und zeigt eine Liste von Suchoptionen an. Sie wissen, die Ajax-Stil Live-Suche.
Mein Problem ist, wenn man etwas sehr schnell eingibt, kann es sein, dass die Suche nur anhand der ersten 1 oder 2 Buchstaben durchgeführt wird, auch wenn noch 10 weitere Buchstaben eingegeben wurden. Das verursacht einige Probleme.
Mein jQuery sieht ein bisschen so aus:
$(document).ready(function(){
$('#searchMe').keyup(function(){
lookup(this.value);
});
});
y
function lookup(searchinput) {
if(searchinput.length == 0) {
// Hide the suggestion box.
$("#suggestions").hide();
} else {
$('#loading').fadeIn();
$.post("/RPCsearch.php", {queryString: ""+searchinput+""}, function(data){
if(data.length > 0) {
$("#suggestions").html(data).show();
$('#loading').fadeOut();
}
});
}
} // lookup
Also bin ich einfach neugierig, wie kann ich es so machen, dass mein Skript wartet, bis ich fertig getippt habe, bevor ich die Funktion ausführe? Meine Logik besagt, dass die Funktion ausgeführt wird, wenn eine Taste 200 Mikrosekunden lang nicht gedrückt wurde, andernfalls wird ein bisschen gewartet.
Wie wird das gemacht?