gpt4 book ai didi

javascript - jQuery 自动完成超时

转载 作者:搜寻专家 更新时间:2023-11-01 04:58:12 26 4
gpt4 key购买 nike

出于某种原因,我在我正在处理的网站上发出的 ajax 请求有一半时间都中止了。当我为 ajax 请求设置超时时,此问题已解决,如下所示。

$.ajax({
url: "/question/why_wont_it_work",
timeout : 1000,
success: function(){ /*do stuff*/ }
});

遗憾的是,超时修复似乎不适用于 jquery 自动完成。我是这样使用它的:

$( "#questionTags" ).autocomplete({
source: "/question/tags",
timeout: 1000,
select: function(event, ui) { /*do stuff*/ },
});

我查看了网站上的 jQueryUI 文档,也没有看到超时选项。现在这很烦人,因为有一半时间我的请求会中止并且我得不到结果我想。有没有解决的办法?

提前致谢。

最佳答案

您可以为 source 参数提供任意函数。因此,您可以手动发出 AJAX 请求并指定 timeout 选项:

var xhr = null; /* To prevent multiple calls from happening while one is in progress */
$("#questionTags").autocomplete({
source: function (request, response) {
if (!xhr) {
xhr = $.ajax({
url: "/question/tags",
timeout: 20000,
data: request,
dataType: "json",
success: function (data) {
xhr = null;
response(data);
},
error: function () {
response([]);
}
});
}
},
select: function(event, ui) { /*do stuff*/ },
});

但是我在@El Ronnoco ,您可能想认真加快您的请求。 20 秒是一段漫长的等待时间。

关于javascript - jQuery 自动完成超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009353/

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