我有一个包含许多“普通”链接的页面(<a href=XXX>
),此页面的一部分是通过jQuery Ajax方法获取数据(此调用可能需要大约20-30秒......)。
我发现如果在Ajax调用仍在运行时按下其中一个链接,我无法正常重定向到链接的地址,我必须等到Ajax调用完成(即使它应该是异步......不是吗?)
我想如果在完成任何链接之前我必须中止Ajax调用 - 任何人都可以告诉我该怎么做?
干杯,
答案 0 :(得分:2)
如果链接不起作用,则ajax调用应该是同步的。同步(阻塞)请求(async:false)会锁定您的浏览器并阻止它执行任何操作。
检查您的代码,看看您是否已将错误的异步参数传递给.ajax函数。如果将.ajax调用的结果返回给变量,则应该使用阻塞请求。
jQuery.ajax示例:同步加载数据。请求处于活动状态时阻止浏览器。在需要同步时,最好通过其他方式阻止用户交互。
var html = $.ajax({
url: "some.php",
async: false
}).responseText;