p***@yeah.net
p***@yeah.net
  • 发布:2017-10-10 13:57
  • 更新:2017-10-10 15:21
  • 阅读:1560

【报Bug】plus ready之后,ajax请求在android设备的4g环境下响应非常慢的bug

分类:5+ SDK

详细问题描述
[内容]
在android 4G环境下,xhr请求,响应很慢; ajax请求,在plus准备好之前,调用很快响应,在plus准备好之后响应很慢。

重现步骤
[步骤] app启动的时候,会调用一次ajax请求,此时响应很快。启动之后,点击xhr请求或者ajax请求,响应都很慢,详见附件的demo。
[结果] plus ready之后响应速度很慢
[期望] plus ready之后响应速度正常

运行环境
[系统版本] android
[IDE版本] Android-SDK@1.9.9.34035_20170726
[mui版本] 3.7.0

附件
[代码片段]

<!DOCTYPE HTML>  
<html>  

    <head>  
        <meta charset="utf-8" />  
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />  
        <meta name="HandheldFriendly" content="true" />  
        <meta name="MobileOptimized" content="320" />  
        <title>Hello H5+</title>  
        <script type="text/javascript" src="js/mui.js"></script>  
        <script type="text/javascript" src="js/common.js"></script>  
        <script type="text/javascript">  
            var url = "https://app.ibeifeng.com/openapi/TpcsStudent/Product/GetSingleProducts/v1?pageIndex=1&pageSize=10&IsFree=1";  

            //XMLHttpRequest.begin  
            var xhr = null;  

            function xhrCreate() {  
                if(xhr) {  
                    outLine("xhr请求已创建");  
                    return;  
                }  
                outSet("创建请求:");  
                xhr = new plus.net.XMLHttpRequest();  
                xhr.onreadystatechange = function() {  
                    switch(xhr.readyState) {  
                        case 0:  
                            outLine("xhr请求已初始化");  
                            break;  
                        case 1:  
                            outLine("xhr请求已打开");  
                            break;  
                        case 2:  
                            outLine("xhr请求已发送");  
                            break;  
                        case 3:  
                            outLine("xhr请求已响应");  
                            break;  
                        case 4:  
                            outLine("xhr请求已完成");  
                            if(xhr.status == 200) {  
                                outLine("xhr请求成功:" + xhr.responseText);  
                            } else {  
                                outLine("xhr请求失败:" + xhr.status);  
                            }  
                            break;  
                        default:  
                            break;  
                    }  
                }  
                xhr.open("GET", url);  
                xhr.send();  
            }  
            //XMLHttpRequest.end  

            //ajax.begin  
            function ajaxRequest() {  
                outSet("ajax请求开始");  
                mui.ajax(url, {  
                    dataType: 'json',  
                    type: 'get',  
                    timeout: 0,  
                    crossDomain: true,  
                    success: function(data, textStatus, xhr) {  
                        outLine("ajax请求成功,data:" + JSON.stringify(data));  
                    },  
                    error: function(xhr, type, errorThrown) {  
                        outLine("ajax请求失败,type:" + type + ",errorThrown:" + errorThrown);  
                    }  
                });  
            }  
            //ajax.end  

            //plus ready之前调用  
            mui.ready(function() {  
                ajaxRequest();  
            });  
        </script>  
        <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />  
    </head>  

    <body>  
        <header id="header">  
            <div class="nvbt iback" onclick="back()"></div>  
            <div class="nvtt">XmlHttpRequest</div>  
            <div class="nvbt idoc" onclick="openDoc('XmlHttpRequest Document','/doc/xhr.html')"></div>  
        </header>  
        <div id="dcontent" class="dcontent">  
            <br/>  
            <div style="color: #f00;">在android 4G环境下,xhr请求,响应很慢; ajax请求,在plus准备好之前,调用很快响应,在plus准备好之后响应很慢。</div>  
            <div style="color: #00f;white-space: normal;word-wrap: break-word;word-break: normal;">https://app.ibeifeng.com/openapi/TpcsStudent/Product/GetSingleProducts/v1?pageIndex=1&pageSize=10&IsFree=1</div>  
            <br/>  
            <ul class="dlist">  
                <li class="ditem" onclick="xhrCreate();">xhr请求</li>  
                <li class="ditem" onclick="ajaxRequest();">ajax请求</li>  
            </ul>  
        </div>  
        <div id="output">  
        </div>  
    </body>  
    <script type="text/javascript" src="immersed.js"></script>  

</html>

联系方式
[QQ] 302365624
[电话] 13585978165

2017-10-10 13:57 负责人:无 分享
已邀请:
Neil_HL

Neil_HL

这从纯粹看网速的吧,在4G下我试了下你的接口,从发送请求到收到数据差不多都是1000ms到2000ms,第一次调用也是差不多是这个范围。

  • p***@yeah.net (作者)

    不是的,可以在安卓手机上跑一下附件的工程,第一次确实很快,手动去调用的时候要几十秒。

    2017-10-10 15:38

  • Neil_HL

    回复 p***@yeah.net:我是在手机上跑的你的工程,你是最新版Hbuilder吗

    2017-10-10 16:18

该问题目前已经被锁定, 无法添加新回复