Javascript 多次ajax调用后超时

Javascript 多次ajax调用后超时,javascript,android,jquery-mobile,cordova,Javascript,Android,Jquery Mobile,Cordova,我正在用phonegap开发一个android应用程序。所以我的应用程序中几乎所有的东西。是用javascript完成的。我遇到了下面描述的问题。如果有人能告诉我如何解决这个问题,我将不胜感激。所以:请帮忙 如果我点击我的应用程序,我的ajax请求就会超时。一旦生成超时,所有其他请求也会超时。如果在浏览器中运行此操作,则不会出现此问题。所有调用都是异步的。有时:在构建我的页面时,多个请求并行运行 我的代码: if (typeof TheApplication.webServiceCall !==

我正在用phonegap开发一个android应用程序。所以我的应用程序中几乎所有的东西。是用javascript完成的。我遇到了下面描述的问题。如果有人能告诉我如何解决这个问题,我将不胜感激。所以:请帮忙

如果我点击我的应用程序,我的ajax请求就会超时。一旦生成超时,所有其他请求也会超时。如果在浏览器中运行此操作,则不会出现此问题。所有调用都是异步的。有时:在构建我的页面时,多个请求并行运行

我的代码:

if (typeof TheApplication.webServiceCall !== 'function'){
    TheApplication.webServiceCall = function(uri, theType, async, data, callback, callbackError){

        var result;

        var successCallback = function (r) {

            TheApplication.user.name = r.username;

            $.ajax({
                url: baseUrl + uri,
                type: theType,
                async: async,
                data: data,
                dataType: 'json',
                timeout: 7000,
                cache: false,
                contentType: "application/json; charset=utf-8",
                beforeSend: function(xhr,settings) {
                    var authToken = r.authtoken;
                    xhr.setRequestHeader('Authorization','Basic '+authToken);
                    xhr.setRequestHeader('max-age',0);
                    xhr.setRequestHeader('Expires','already expired');
                },
                success: function(data, textStatus, jqXHR) {
                    if (data.Error.length > 0){
                        console.log("log TheApplication.webServiceCall error "+JSON.stringify(data.Error));
                        TheApplication.Error.Throw(data.Error);
                    }
                    result = callback(data);
                },
                error: function(xhr, options, error){
                    var errorMessage = JSON.stringify(error);
                    if (typeof callbackError === 'undefined' || callbackError == false) {
                        TheApplication.Error.Throw('UNKNOWN');
                    }
                    if(errorMessage == "" || (errorMessage.indexOf("timeout"))>0){
                        TheApplication.Error.Throw('NO_CONNECTION');
                    }
                }
            });

        };

        var failureCallback = function (e) {
            TheApplication.Error.Throw('UNKNOWN');
        };

        window.plugins.accountManager.getAccount(successCallback, failureCallback);
    };
}

如果我强制async为false(如此同步操作),问题似乎不会发生。我不喜欢Android开发,但多个Ajax请求同时超时,就像HTTP管道一样。尝试强制HTTP 1.0,看看请求是否仍然一起超时。如果我强制async为false(因此同步操作),问题似乎不会发生。我不喜欢Android开发,但多个Ajax请求同时超时,就像HTTP管道一样。尝试强制HTTP 1.0,看看请求是否仍然同时超时。