Probieren Sie diesen js-Code anstelle dessen aus, was Sie haben. Ich habe die Verzögerungsfunktion hinzugefügt, damit das Skript eine bestimmte Zeit wartet, nachdem der Benutzer mit der Eingabe aufgehört hat, bevor es die Anfrage sendet. Dadurch wird verhindert, dass eine große Anzahl von Anfragen an den Server gesendet wird.
<script type="text/javascript">
var delay = (function() {
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$("#search-box").keyup(
function () {
delay(function () {
var keyword = $("#search-box").val();
var URL = encodeURI("search.php?q=" + keyword);
$.ajax({
url: URL,
cache: false,
type: "GET",
success: function(response) {
$("#results").html(response);
}
});
}, 500);
}
);
</script>