Jquery Ajax调用不允许其他链接正常运行

时间:2010-12-25 12:15:25

标签: jquery ajax

我有一个包含许多“普通”链接的页面(<a href=XXX>),此页面的一部分是通过jQuery Ajax方法获取数据(此调用可能需要大约20-30秒......)。

我发现如果在Ajax调用仍在运行时按下其中一个链接,我无法正常重定向到链接的地址,我必须等到Ajax调用完成(即使它应该是异步......不是吗?)

我想如果在完成任何链接之前我必须中止Ajax调用 - 任何人都可以告诉我该怎么做?

干杯,

1 个答案:

答案 0 :(得分:2)

如果链接不起作用,则ajax调用应该是同步的。同步(阻塞)请求(async:false)会锁定您的浏览器并阻止它执行任何操作。

检查您的代码,看看您是否已将错误的异步参数传递给.ajax函数。如果将.ajax调用的结果返回给变量,则应该使用阻塞请求。

jQuery.ajax示例:同步加载数据。请求处于活动状态时阻止浏览器。在需要同步时,最好通过其他方式阻止用户交互。

var html = $.ajax({

  url: "some.php",

  async: false

 }).responseText;