gpt4 book ai didi

jquery - 当我发起新的 ajax 调用时,可以停止之前的 ajax 调用吗?

转载 作者:行者123 更新时间:2023-12-03 22:29:23 26 4
gpt4 key购买 nike

我正在使用 jQuery 的自动完成,但发现了一个与性能相关的问题 - 如果我输入“abc”,它将按“a”、“ab”和“扫描” abc',当ajax调用按'abc'搜索时,如何停止前面的'a','ab'?

类似的案例还有:我使用 jQuery DataTables,想要进行一些搜索,例如,我输入一些内容进行搜索(调用搜索 Web 方法),然后单击按钮 -“搜索”一次 3 次,或者在单击“搜索”时更改搜索文本,并提出新的搜索,如何停止之前无用的ajax调用?

最佳答案

JQuery 的 $.ajax 返回一个 xmlHttpRequest 对象,可以通过其 native 方法 .abort() 取消该对象

$("#search").autocomplete({
minLength: 3,
delay: 300, // this is in milliseconds
json: true,
source: function(request, response){
// New request 300ms after key stroke
var $this = $(this);
var $element = $(this.element);
var previous_request = $element.data( "jqXHR" );
if( previous_request ) {
// a previous request has been made.
// though we don't know if it's concluded
// we can try and kill it in case it hasn't
previous_request.abort();
}
// Store new AJAX request
$element.data( "jqXHR", $.ajax( {
type: "POST",
url: "foo.php",
dataType: "json",
success: function( data ){
response( data );
}
}));
}
});

关于jquery - 当我发起新的 ajax 调用时,可以停止之前的 ajax 调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121963/

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