Android 7(索尼Z4)xmlHTTPRequest有时需要很长时间

时间:2017-04-05 08:55:01

标签: javascript jquery ajax xmlhttprequest android-7.0-nougat

在我的应用程序中,我通过JavaScript请求资源。

在测试1中,我使用原生XMLHttpRequest。 在测试2中,我使用Jquery 1.9.1

测试1

function getResource(){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://localhost:8080/test/empty.html", false);
    xhr.send("");
    var result = xhr.responseText;
}

测试2

function getResource(){
    var config = {
        url: http://localhost:8080/test/empty.html,
        error: function (xhr, status, error) {
            //handle error
        },
        async: false
    };

    jQuery.ajax(config);
}

对于两个测试案例,都会调查相同的结果。

Invatigation:

  • 请求通常需要约130毫秒。但通常需要很多 从1s到30s的更多时间
  • 这只出现在Android 7.0(Nougat)设备上(索尼Z4)

  • 我们发现,服务器(Tomcat 7)得到了响应并将请求发送回客户端。 客户端正在等待它,但没有得到响应(在Chrome网络选项卡中,empty.html正在等待处理)。不知何故,服务器从客户端获得新响应并再次发回请求。这将重复,直到客户端识别出响应。

PS: 我得到了一个提示,这可能是JQuery 1.9的一个问题,升级到2.X将解决这个问题。 但我无法轻松地将我的应用程序升级到更新版本的JQuery。

我能做些什么,这种设备能在ms内得到响应?

0 个答案:

没有答案