Hãy thử mã js này thay cho những gì bạn có. Tôi đã thêm chức năng trì hoãn để tập lệnh đợi một khoảng thời gian xác định sau khi người dùng ngừng nhập trước khi gửi yêu cầu. Điều này ngăn chặn một lượng lớn yêu cầu được gửi đến máy chủ.
<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>