小编典典

AJAX:在表单字段中键入内容时搜索延迟

ajax

在我的网站上,我使用JavaScript / AJAX进行搜索并在用户仍在键入时显示结果。

HTML(正文):

<form action="" method="post" accept-charset="utf-8">
    <p><input type="text" name="q" id="q" value="" onkeyup="doSearch(this.value)" /></p>
</form>

JavaScript(标题):

function doSearch(text) {
    // do the ajax stuff here
    // call getResults.php?search=[text]
}

但这可能会导致许多请求到达服务器。

因此,我想通过设置延迟来减轻服务器的负担:

每当触发onkeyup事件时,函数doSearch()均应显示“
ajax加载图形”,并等待2秒钟。只有在这2秒钟内未再次触发该事件时,才应该从PHP文件中获取结果。

有什么办法吗?请问你能帮帮我吗?提前致谢!


阅读 272

收藏
2020-07-26

共1个答案

小编典典

var delayTimer;
function doSearch(text) {
clearTimeout(delayTimer);
delayTimer = setTimeout(function() {
// Do the ajax stuff
}, 1000); // Will do the ajax stuff after 1000 ms, or 1 s
}

2020-07-26