详细问题描述
[内容]
在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
p***@yeah.net (作者)
不是的,可以在安卓手机上跑一下附件的工程,第一次确实很快,手动去调用的时候要几十秒。
2017-10-10 15:38
Neil_HL
回复 p***@yeah.net:我是在手机上跑的你的工程,你是最新版Hbuilder吗
2017-10-10 16:18