如何使用字符串传递数据这个非常特殊的示例,如何设置加载超时?看起来像应该从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();
});
});
答案 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。相反,在。中明确设置选项 调用或定义一个简单的插件来执行此操作。
但是,在您的情况下(仅更改超时设置时)也可以这样做。