あなたが持っているものの代わりにこのjsコードを試してください。ユーザーが入力を停止してからリクエストを送信する前に、スクリプトが指定された時間待機するように、遅延関数を追加しました。これにより、大量のリクエストがサーバーに送信されるのを防ぎます。
<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>