gpt4 book ai didi

javascript - 停止 Ajax 请求并调用新的 Ajax

转载 作者:行者123 更新时间:2023-11-29 19:37:55 24 4
gpt4 key购买 nike

在这段代码中,我从用户那里获取输入字符并在数据库中搜索它,但是当用户输入每个字符时,使用以前的 ajax 运行新的 ajax 请求,

我想在调用搜索功能时,取消之前的 ajax 请求并运行新的 ajax 请求;

html代码:

<input type="text" onkeyup="search()">

js代码:

    function search () {


var request=$.ajax({
type: "POST",
url: "php/h.php",
data: {k_word:k_word},
dataType: "json",
success: function (data) {

ghtml(data)

}
})


}

我也试过像这样使用 abrot() :

var request;

function search () {

request.abort();


request=$.ajax({
type: "POST",
url: "php/h.php",
data: {k_word:k_word},
dataType: "json",
success: function (data) {

ghtml(data)

}
})


}

但不工作

最佳答案

这通常不是它的完成方式,相反,节流用于仅在用户停止输入给定时间时调用 ajax 函数

首先,摆脱内联javascript

 <input type="text" id="myInput" />

然后使用事件处理器

$('#myInput').on('keyup', function() {

clearTimeout( $(this).data('timer') );

$(this).data('timer',
setTimeout(function() {
$.ajax({
type : "POST",
url : "php/h.php",
data : {k_word:k_word},
dataType : "json",
success : function (data) {

ghtml(data)

}
});
}, 500)
);
});

这会在 ajax 调用上设置超时,如果在半秒内按下新键,则会清除该超时,因此仅当用户停止输入超过 500 毫秒时才会进行 ajax 调用

关于javascript - 停止 Ajax 请求并调用新的 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com