如何为此特定示例设置加载Jquery的超时?

时间:2013-04-21 08:26:17

标签: jquery javascript jquery-load

如何使用字符串传递数据这个非常特殊的示例,如何设置加载超时?看起来像应该从compare_proc.php api加载的谷歌图表需要很长时间...因为在click事件中,我得到一个空白结果,我期待从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();
            });
});

1 个答案:

答案 0 :(得分:3)

jQuery load()方法不接受任何settings参数。因此,您必须使用更低级别的方法ajax()调用来替换它 - 这样您就可以为此特定请求指定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。相反,在。中明确设置选项   调用或定义一个简单的插件来执行此操作。

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