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

标签 javascript php jquery

我试图获取 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/

相关文章:

java - 从弹出窗口刷新主窗口

javascript - 我应该将 document.getElementById() 缓存在变量中还是每次都调用它?

javascript - .removeClass 在多个项目上?

javascript - 更改特定类标签的属性?

jQuery 显示/隐藏 sibling

javascript - 当数字未知时,有没有办法遍历所有 jwplayer 实例?

javascript - 多个异步系列导致 Javascript 中的错误行为

php - 如何使脚本从 MYSQL 数据库中检索特定数据?

javascript - 上传多张图片上传前预览图片

PHP 从 MySQL 查询切换页面