【问题标题】:How do I set a timeout in load Jquery for this particular example?如何为这个特定示例在加载 Jquery 中设置超时?
【发布时间】:2013-04-21 08:26:16
【问题描述】:

如何为这个使用字符串传递数据的特殊示例设置加载超时?看起来应该从 compare_proc.php api 加载的谷歌图表需要很长时间......因为在点击事件中,我得到一个空白结果,我希望从 compare.php 加载图表......我会感谢我如何为这个特定的 Jquery 操作设置超时。谢谢!

    jQuery(document).ready(function() {
          $("#opposition a").click(function(e) {
          var first_id  = $(this).attr('id');
          var second_id = $("h1").attr('id');
          $("div#test").load('compare_proc.php','id=' + first_id + '&id2=' + second_id);
          e.preventDefault();
            });
});

【问题讨论】:

  • 尝试在谷歌图表函数上调用http://api.jquery.com/delay/delay()。

标签: jquery javascript jquery-load


【解决方案1】:

jQuery load() 方法不接受任何 settings 参数。因此,您必须用更底层的方法 ajax() call 替换它 - 它允许您为此特定请求指定 timeout 设置。一种可能的方法:

$.ajax('compare_proc.php', {
  data: 'id=' + first_id + '&id2=' + second_id,
  timeout: someTimeoutInMs,
  success: function(resp) {
    $('#test').html(resp);
  }
});

替代方法是保留您的代码,但使用ajaxSetup() 调用(在调用load 之前)修改全局AJAX 设置。请注意,强烈建议不要在其文档页面上使用此 API:

此处指定的设置将影响 所有调用$.ajax 或 基于 AJAX 的衍生产品,例如 $.get()。这可能会导致不受欢迎的 行为,因为其他调用者(例如,插件)可能期待 正常的默认设置。出于这个原因,我们强烈推荐 反对使用此 API。相反,在 调用或定义一个简单的插件来做到这一点。

不过,在您的情况下(仅更改超时设置时)也可以这样做。

【讨论】:

  • @raina77now .. 你能给我一个例子来说明我如何将我的例子集成到 ajax() 中吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2017-10-07
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
  • 1970-01-01
相关资源
最近更新 更多