Coba kode js ini sebagai ganti dari yang Anda miliki. Saya menambahkan fungsi penundaan sehingga skrip menunggu dalam waktu tertentu setelah pengguna berhenti mengetik sebelum mengirim permintaan. Ini mencegah sejumlah besar permintaan dikirim ke server.
<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>