Опитайте този 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>