相当于同步JS中的XMLHttpRequest超时

时间:2015-08-05 10:59:57

标签: javascript http connection timeout

理解为什么超时在同步JS中不起作用时会遇到一些麻烦。我的脚本是同步的,我需要它能够超时,因为我的异常处理它,是否可能?

我试图研究它,但所有实现(使用setTimeout等)似乎只是立即运行以下代码并将跳过尝试连接,几乎就像超时被设置为0ms一样。

        function httpGet(theUrl) {
            try {
                var xmlHttp = new XMLHttpRequest();
                xmlHttp.open("GET", theUrl, false);
                xmlHttp.timeout = 3000;
                xmlHttp.send(null);
                NotifyUser("success", "<b>Success</b> We have synced with the server.");
                return xmlHttp.responseText;
            } catch (e) {
                    console.log("Connection failed, grabbing local");
                    NotifyUser("info", "<b>Connection Failed</b> Using local database - Edits will not be saved!(Yet)");
                    return offlinePopulate();
            } 
}

1 个答案:

答案 0 :(得分:0)

结束使其与jquery.get

异步
$.get( theUrl, function( data ) {
               //panic
            }).done(function(data) {
               console.log("success");

            }).fail(function() {
                console.log("fail");

            });