Prova den här js-koden istället för vad du har. Jag lade till fördröjningsfunktionen så att skriptet väntar en viss tid efter att användaren slutat skriva innan förfrågan skickas. Detta förhindrar att en stor mängd förfrågningar skickas till servern.
<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>