У меня есть немного кода, который я пишу, пытаясь интегрировать API поиска bing на моем сайте с мгновенными результатами поиска.Я использую функцию keyup в jquery для отправки данных в мой серверный скрипт, который затем получает XML-файл bing search и показывает результаты.
Меня беспокоит то, что я буду совершать слишком много ненужных обращений к моим скриптам,Может кто-нибудь, пожалуйста, посмотрите на это и скажите мне, как я могу поместить задержку в 1 секунду между keyups как таймер?поэтому он будет обновлять результаты только каждые одну секунду или около того?
Это то, что я создал до сих пор, но я не знаю, правильно ли это ???
<script type="text/javascript">
var delay = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
function reloadsearch() {
var searchterms = $('#q').val();
if (searchterms.length >= 3) {
delay(function() {
var data = 'source=ajax&q=' + searchterms;
$.ajax({
type: "GET",
url: "results/",
data: data,
success: function(html) {
if (html !== '') {
$("#search-results").html(html);
$("#search-results").fadeIn(500);
}
}
});
}, 250);
}
else
{
$("#search-results").fadeOut(250);
}
};
$('#q').keyup(function() {
reloadsearch()
});
$(document).ready(function() {
reloadsearch()
});