javascript - 设置ajax调用的延迟

标签 javascript jquery ajax delay settimeout

我试图在加载器图标和​​成功将数据作为 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>

关于javascript - 设置ajax调用的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395048/

相关文章:

php - 如何在字母之间插入连字符而不是换行符?

jquery - 未执行 Ajax 重定向

javascript - 禁用鼠标悬停事件然后重新启用

javascript - 使用 AJAX 调用将 PHP 字符串数组转换为 Javascript 对象数组

jquery - asp.net MVC4 中的全局化

javascript - Rails "Load more..."而不是分页

javascript - 在 WordPress 中的所有帖子页面加载上运行脚本

javascript - 如何仅在数组中完全匹配时执行代码

javascript - 有没有办法在javascript中调用对象内的所有函数?

java - 防止用户更改浏览器中后退按钮上的 URL