我们的网络应用程序是使用AngularJS v1.2.26构建的。我们正在解决一个问题,这个问题似乎只发生在较旧的Android浏览器上,特别是4.2 ...
简而言之,异步事件的发生速度比它们应该慢600%。例如,我们显示错误消息以响应失败的HTTP请求。负责发出请求的服务有一个保存状态消息的变量。然后控制器会这样看:
// Status msg ctrl
var statusCtrl = app.controller('statusCtrl', function($scope, updateService, $timeout) {
$scope.message = false;
//watch for status messages
$scope.$watch(function () { return updateService.loadingTroubleMsg; },
function (value) {
$scope.message = value;
}
);
});
在其他浏览器中,这非常有效。 http请求失败,然后消息立即显示。在Android浏览器(客户端从USB运行)上,消息显示约20分钟后。
我有几个理论:
$watch
在慢动作中徘徊。 没有明显的错误,其他一切似乎都有效。不幸的是,我的位置上没有确切的USB Android设备,这使得故障排除更加困难。
为什么会这样?我的任何理论都比其他理论更合理吗?关于如何深入了解这一点的任何建议都是值得欢迎的。
答案 0 :(得分:0)
原来是#3。我在$ http配置设置中添加了“超时”限制,它开始正常响应。我不知道为什么这只对Android 4.2很重要。我猜它与缺乏(本机)支持承诺有关。