【问题标题】:How can i display the data after few seconds?几秒钟后如何显示数据?
【发布时间】:2016-01-06 02:39:21
【问题描述】:

我知道我不应该这样做,但我想让微调器为用户提供更长的时间。因为目前 Ajax 请求太快了,所以用户甚至看不到微调器。

无论如何至少要放 5 秒,所以在这 5 秒之后显示数据。

$.ajax({
  type: "POST",
  url: $('#AjaxMoreStatus').attr("data-url"),
  dataType: "HTML",
  beforeSend: function() {
    $('.spinner').show();
  },
  complete: function() {
    $('.spinner').hide();
  },
  success: function (data) {
    $('#AjaxMoreStatus').append(data);
  }
});

【问题讨论】:

  • 我的一部分人在想,如果你只是让隐藏而不是延迟,如果这看起来不奇怪的话,是否会是一个缓慢的过渡。只是大声思考。就像使用 fadeOut()

标签: jquery ajax timeout


【解决方案1】:

只需使用setTimeout 来伪造延迟:

$.ajax({
  type: "POST",
  url: $('#AjaxMoreStatus').attr("data-url"),
  dataType: "HTML",
  beforeSend: function() {
    $('.spinner').show();
  },
  complete: function() {
    setTimeout(function () {
      $('.spinner').hide();
    }, 5000); // 5 seconds.
  },
  success: function (data) {
    $('#AjaxMoreStatus').append(data);
  }
});

如果你也想延迟加载,也可以在 success 函数上使用它:

$.ajax({
  type: "POST",
  url: $('#AjaxMoreStatus').attr("data-url"),
  dataType: "HTML",
  beforeSend: function() {
    $('.spinner').show();
  },
  complete: function() {
    setTimeout(function () {
      $('.spinner').hide();
    }, 5000); // 5 seconds.
  },
  success: function (data) {
    setTimeout(function () {
      $('#AjaxMoreStatus').append(data);
    }, 5000); // 5 seconds.
  }
});

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多