ConSoleM
Grünschnabel
Hi ho.
Hab ein Problem mit meinem Suchformular in Ajax... Es funktioniert so, dass jedesmal, wenn der User einen Buchstaben eingibt (keyup) eine Funktion aufgerufen wird, welche eine php-Datei ausführt, die wiederum auf eine Datenbank zugreift und Einträge ausliest.
Da diese Datenbank ca. 30.000 Einträge enthält, braucht das seine Zeit. Nun ist das Problem, dass die Datenbank jedesmal, wenn die Taste losgelassen wird, aufgerufen wird und somit das ganze etwas überlastet ist.
Meine Frage: Kann man einer Funktion sagen, dass sie erst was tun soll, wenn der User 3 Sekunden nix mehr eingegeben hat? Mit settimeout() hab ichs probiert, allerdings wird die Datenbank da trotzdem öfters aufgerufen...
Also ich brauche eine Funktion, die erst die Ajax.Updater() ausführt, wenn der User 3 Sekunden nix mehr tut. Hat jemand ne Idee?
hier mal das Codeschnipsel zum Javascript
Bin eben leider kein Crack in Javascript. Danke schonmal für eure Hilfe...
Hab ein Problem mit meinem Suchformular in Ajax... Es funktioniert so, dass jedesmal, wenn der User einen Buchstaben eingibt (keyup) eine Funktion aufgerufen wird, welche eine php-Datei ausführt, die wiederum auf eine Datenbank zugreift und Einträge ausliest.
Da diese Datenbank ca. 30.000 Einträge enthält, braucht das seine Zeit. Nun ist das Problem, dass die Datenbank jedesmal, wenn die Taste losgelassen wird, aufgerufen wird und somit das ganze etwas überlastet ist.
Meine Frage: Kann man einer Funktion sagen, dass sie erst was tun soll, wenn der User 3 Sekunden nix mehr eingegeben hat? Mit settimeout() hab ichs probiert, allerdings wird die Datenbank da trotzdem öfters aufgerufen...
Also ich brauche eine Funktion, die erst die Ajax.Updater() ausführt, wenn der User 3 Sekunden nix mehr tut. Hat jemand ne Idee?
hier mal das Codeschnipsel zum Javascript
Code:
<script type="text/javascript">
function init() {
Event.observe("SearchInput", "keyup", search);
}
function search(){
var address = "SearchInput="+ $F("SearchInput"); //$F geliefert von Prototype
new Ajax.Updater("Liste","tuewas.php", {method:"get", parameters: address});
}
Event.observe(window,"load", init);
</script>
Bin eben leider kein Crack in Javascript. Danke schonmal für eure Hilfe...