我正在编写一些代码,试图将我网站中的 bing 搜索 API 与即时搜索结果集成。我使用 jquery 的 keyup 函数将数据发送到我的服务器端脚本,然后获取 bing 搜索 xml 并显示结果。
我担心的是我会对我的脚本造成太多不必要的点击。有人可以看看这个并告诉我如何在按键之间设置 1 秒的延迟作为计时器吗?所以它只会每隔一秒左右更新一次结果?
这是我到目前为止创建的,但我不知道它是否正确???
<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()
});