gpt4 book ai didi

javascript - 计算 ajax 响应的时间并在 SetTimeout 函数中使用该时间

转载 作者:行者123 更新时间:2023-12-01 01:35:18 26 4
gpt4 key购买 nike

我试图获取 ajax 请求的响应时间并在 setTimeout() 函数中使用它,该函数显示一个加载器,该加载器应该持续加载直到我们获得响应。

这是我的功能:

 $("#recalculer").click(function(){
ajax_call();
setTimeout(function()
{
$("#divgris").fadeTo(0,1);
$("#loadingdiv2").hide();
}, 5000);
});

这是我的 ajax 请求:

 function ajax_call()
{
var resultat;
var duree_souhaitee= $("#duree").val();
var apport_personnel= $("#apport").val().replace(/\s+/g, '');
var prix_achat_bien=$("#prix").val().replace(/\s+/g, '');
$.ajax({
type: "POST",
url: "/iframe/rest-assurance",
data : {
"duree_souhaitee" : duree_souhaitee,
"apport_personnel" : apport_personnel,
"prix_achat_bien" : prix_achat_bien
},
dataType: 'json',
xhrFields: {
withCredentials: true
},
async: true,
beforeSend: function(){
$("#actualiserAssurance").hide();

},
success: callback_assurance
});
}

现在我设置了 5000 的时间,但我需要用 ajax 响应时间替换它,我怎样才能实现这一点?

最佳答案

我总是使用:

$("#loadingdiv2").show();
$.ajax(
...
).always(function(){ $("#loadingdiv2").hide(); });

如果您想将其与 Ajax 调用分开,我将使用自定义事件。

 $("#recalculer").click(function(){
ajax_call();
});

$("body").bind('custom.ajaxStart', function(){ $("#loadingdiv2").show(); });

$("body").bind('custom.ajaxStop', function(){ $("#loadingdiv2").hide(); });

function ajax_call(){
$('body').trigger('custom.ajaxStart');
$.ajax(..).always(function(){ $('body').trigger('custom.ajaxStop'); });
}

即使在 404 上,always 回调也会被触发,依赖于计时对我来说从来都不太有效。

使用事件使您可以从任何地方灵活地调用加载交易。

关于javascript - 计算 ajax 响应的时间并在 SetTimeout 函数中使用该时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887574/

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