当前位置: 首页 > 面试题库 >

设置ajax调用的延迟

公孙盛
2023-03-14
问题内容

我试图在加载器图标和​​成功的html之间添加一个小的延迟(2秒)。

我尝试使用的是setTimeout并放入延迟号。这是行不通的,所以我希望您能告诉我正确的方法是什么。

我的ajax代码:

<script type="text/javascript">

$(function () {

    var delay = 2000;

    var res = {
        loader: $("<div />", { class: "loader" })
    };

    $('#search').on('click', function () {
        $.ajax({
            type: 'GET',
            url: "@Url.Action("Find", "Hotel")",
            datatype: "html",
            beforeSend: function () {
                $("#group-panel-ajax").append(res.loader);
                setTimeout(delay);
            },

            success: function (data) {
                $("#group-panel-ajax").find(res.loader).remove();
                $('#group-panel-ajax').html($(data).find("#group-panel-ajax"));
            }
        });
        return false;
    });
});

</script>

现在,它运行得非常快。希望有人能帮忙。


问题答案:

setTimeout应该用在里面success function

$(function() {

  var delay = 2000;

  var res = {

    loader: $("<div />", {

      class: "loader"

    })

  };

  $('#search').on('click', function() {

    $.ajax({

      type: 'GET',

      url: "@Url.Action("Find", "Hotel")",

      datatype: "html",

      beforeSend: function() {

        $("#group-panel-ajax").append(res.loader);

      },

      success: function(data) {

        setTimeout(function() {

          delaySuccess(data);

        }, delay);

      }

    });

    return false;

  });

});



function delaySuccess(data) {

  $("#group-panel-ajax").find(res.loader).remove();

  $('#group-panel-ajax').html($(data).find("#group-panel-ajax"));

}


<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


 类似资料:
  • 问题内容: 我正在尝试为可重复查询添加延迟。 我发现.delay不是这里使用的那个。相反,我应该使用setInterval或setTimeout。我都尝试过,没有运气。 这是我的代码: 该代码工作正常,它按要求输出结果。它只是加载而没有延迟。timout和/或间隔似乎不起作用。 有人知道我在做什么错吗? 问题答案: 我从来不明白为什么人们总是间隔一定时间添加他们的AJAX请求,而不是让成功的AJA

  • 我已经做了一些关于CORS如何工作的研究,但老实说,我是开发这一特定方面的新手。 我有一个API,我想向任何使用有效API密钥的人公开它。这里的安全级别是最低的——API密钥的目的只是帮助识别发出请求的人。请求的信息是公开的,所以我不太关心安全性。 代码的工作方式是,当进行API调用时,它验证API密钥,如果密钥有效并且与所请求的信息匹配,则API返回相关信息。 我目前正在使用“*”作为我的控制器

  • 我有一种情况,我的ajax调用必须以特定的顺序执行。我在其他情况下使用了jQueryDeferred对象,但似乎找不到一种方法来使其正常运行。 我有一个函数,在它的生命周期中执行许多请求。一些请求将在其他请求的成功回调期间执行。 我的问题:当调用时,是否有方法将所有嵌套的延迟对象返回到原始的

  • 下面的问题-我必须多次调用ajax函数,当所有函数完成后,将所有结果放入数组。我想到了这个: 在这里小提琴:http://jsfiddle.net/Fkd9n/ 一切似乎都很正常,“console.log(data)”用响应文本写出对象,但“console.log(val.name)”总是“未定义”。那么,一旦所有调用完成,如何将所有结果合并到一个数组中呢? 谢谢你!

  • 问题内容: 我刚开始用Java编写代码,我正努力设置DelayQueue, 我想这样 我只是想学习所有的基础知识,并且从api上学到了内容,似乎无法掌握它。 提前致谢 问题答案: 该直到一定的延时已经过期保持要素内部。元素必须实现接口。 例如,我创建了一个扩展Delayed接口的类。这将实现compareTo和getDelay()方法 结果:

  • 我目前在react native中有一个函数,它执行以下操作: 我运行上述命令,可以确认arrayId和title变量有效并包含数据。arrayId也不是“selectProduct”。我在调试时在那里添加了一个console.log,以确保它运行,事实上确实如此。我期望的行为是状态立即更新。 但是,所选下拉列表的状态不会更新。在this.setState更新之后添加:console.log(th