我使用jQuery在Android中安装了PhoneGap应用。有时我需要使用$ .post异步上传大量数据,因此数据是在后台发送的。这工作正常,但它连接速度较慢,需要一些时间。我发现,触发另一个异步AJAX调用将导致第一次调用中止。
有没有办法检测是否存在正在进行的异步AJAX以及是否为YES,而不是如何将另一个异步AJAX调用放入队列并在第一个完成时启动它?
答案 0 :(得分:1)
另一种选择是保存对jqXHR对象的引用,然后可以调用complete方法来查看它是否已完成。
var jqXHR = $.post(url,data,function()
{
});
if(jqXHR.complete())
{
//do second call
}
上述所有内容均在手册页http://api.jquery.com/jQuery.post/
中讨论您可以处理此问题并添加计时器。然后,如果它没有完成,只需设置一个计时器几秒钟,然后再次检查它是否已经完成。
答案 1 :(得分:0)
关于检测正在进行的异步AJAX请求,您可以使用一些在调用开始时使用某个值初始化的变量,并在调用完成时将其设置为其他值。
对于第二部分,如果尚未设置该特定变量,则将函数调用添加到您使用'ajaxComplete'事件的处理程序处理的某个队列。或者,通过.complete()传递一个回调来执行回调。