当App通过mui.ajax执行异步(或同步)post, 如果网络质量非常差, 或者服务器端lock住了某个节点. 造成app无法正常接收server端的response, 这时app就会出现死机, 点击界面上的任何操作都没有反应, 程序也不能正常退出. 只有当app完整收到服务器的response后, app才会复苏. 这个问题要怎么解决?

- 发布:2015-12-21 14:43
- 更新:2015-12-21 16:41
- 阅读:1826

ImAngela (作者)
我的代码如下:
mui.ajax(url, {
data: dataObject,
dataType: 'json',
timeout: 3000,
async: false,
success: successCallback,
error: function(xhr, type, errorThrown) {
if(type=="timeout"){
//异常处理;
var floatw = null;
if (floatw) { // 避免快速多次点击创建多个窗口
return;
}
floatw = plus.webview.create("/ServerError.html", "/ServerError.html", subpage_style);
floatw.show();
plus.nativeUI.closeWaiting();
floatw.addEventListener("close", function() {
floatw = null;
plus.nativeUI.showWaiting();
customGetJson(url, dataObject, successCallback);
plus.nativeUI.closeWaiting();
}, false);
}
}
});
ImAngela (作者)
加入这段代码后, 异步的问题解决了, 但是同步的时候依然存在相同的问题.没有server的response, app就如死机一般, 没有任何反应, 也无法退出.
2015-12-21 15:26