在并发ajax请求完成之前,Ajax心跳还没有完成?

时间:2012-10-10 02:57:39

标签: php jquery ajax

我的负载均衡器在60秒后关闭空闲连接,有时需要超过60秒才能运行download_files.php

我想通过每隔45秒发送一次心跳来确保连接保持活动来解决此问题

var heartbeatTimer = 0;
heartbeatTimer = setInterval(function () {      
    var heartbeatXhr = new XMLHttpRequest();
    heartbeatXhr.open('GET', 'heartbeat.php', true);
    heartbeatXhr.send();

}, 45*1000);        


$.ajax({
    url: "download_files.php"
});

clearInterval(heartbeatTimer);

问题是所有心跳每45秒开始一次,但在download_files.php脚本完成之前不会完成。

enter image description here

如何在发出心跳请求后立即完成心跳(我正在使用mod_php)?

另外,如何确保45秒后第一次心跳开始?在上面的示例中,它从0秒开始,例如,如果运行download_files.php需要30秒,我希望心跳不能运行一次。

0 个答案:

没有答案