gpt4 book ai didi

jquery - 防止搜索时后台调用ajax

转载 作者:行者123 更新时间:2023-12-01 05:42:15 24 4
gpt4 key购买 nike

我有一个在后台运行的 ajax..

   var sTimeOut = function () {
$.ajax(
{
type: "POST",
url: '@Url.Action("checkJobIDs")',
dataType: "json",
async: true,
success: function (data) {
}
});
}
var interval = 10000;
setInterval(sTimeOut, interval);

搜索一个元素,我想停止另一个在后台运行的ajax。

   $.ajax(
{
type: "POST",
url: '@Url.Action("searchData")',
dataType: "json",
mtype: "post",
data: { str: str },
async: true,
complete: function () { $(sTimeOut).hide(); },
success: function (data) {
search(data.searched[0]);
}
});

如何在处理第二个 ajax 时阻止第一个 ajax?

最佳答案

您可以abort the request .

您可以声明一个对象来保存当前正在执行的请求,并检查搜索是否正在运行。如果搜索正在运行,则将跳过启动另一个请求。

var request = {
xhr: {},
isSearching: false
};

var sTimeOut = function () {
if(!request.isSearching) // prevent to run other request when is searching
{
request.xhr = $.ajax(
{
type: "POST",
url: '@Url.Action("checkJobIDs")',
dataType: "json",
async: true,
success: function (data) {

}
});
}
}

var interval = 10000;
setInterval(sTimeOut, interval);

当搜索时,请求被中止并阻止执行另一个请求。搜索完成后,您可以在后台恢复请求调用。

$.ajax(
{
type: "POST",
url: '@Url.Action("searchData")',
dataType: "json",
mtype: "post",
data: { str: str },
async: true,
beforeSend: function() { // stop background process
request.isSearching = true;
request.xhr.abort()
},
complete: function () { // resume background process
request.isSearching = false;
},
success: function (data) {
search(data.searched[0]);
}
});

关于jquery - 防止搜索时后台调用ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048004/

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