1

对于这个使用字符串传递数据的非常特殊的示例,如何设置加载超时?看起来应该从 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();
            });
});
4

1 回答 1

3

jQueryload()方法不接受任何settings参数。所以你必须用更底层的方法ajax()调用来替换它——它可以让你timeout为这个特定的请求指定设置。一种可能的方法:

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

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

此处指定的设置将影响对所有调用或基于 AJAX 的派生类的调用,$.ajax例如$.get(). 这可能会导致不良行为,因为其他调用者(例如插件)可能期望正常的默认设置。因此,我们强烈建议不要使用此 API。相反,请在调用中明确设置选项或定义一个简单的插件来执行此操作。

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

于 2013-04-21T08:29:46.553 回答