JS alert()阻止其他必须运行的线程

时间:2016-03-31 12:03:30

标签: javascript multithreading

我有一个JS客户端应用程序,作为其功能的一部分,每秒向服务器发送“心跳”。

“心跳”是简单的AJAX调用,如果服务器在X秒内没有获得任何心跳,它将拒绝来自客户端的任何未来请求。因此,客户端中的心跳引擎必须始终打开,并且在运行时不得停止。

问题是警报消息会停止心跳引擎(直到用户接受该消息)。如果用户在接受消息时等待超过X秒,则服务器拒绝再为客户端提供服务...

这是我的心跳功能:

function send_heartbeat_to_server() {
    var successFunc = function(jsonObj) {
        // do something
    }
    var errorFunc = function(statusCode, message) {
        // do something
    }
    var additionalData = {'some-key' : 'some-value'};
    corsAjaxCall("http://" + client_url + "/heartbeat", additionalData, successFunc, errorFunc);

    // Calling the heartbeat engine again and again every second...
    setTimeout(send_heartbeat_to_server, 1000);
}

// Calling the heartbeat engine for the first time
send_heartbeat_to_server();

如何在显示警告消息时阻止函数send_heartbeat_to_server()停止?

0 个答案:

没有答案