AngularJS + Android 4.2:反应很慢
AngularJS + Android 4.2: very slow to react
我们的网络应用程序是使用 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
正在慢动作。
- http 请求超时时间过长。
没有明显的错误,其他一切似乎都正常。不幸的是,我的位置上没有确切的 USB Android 设备,这使得故障排除更加困难。
为什么会这样?我的理论是否比其他理论更可信?欢迎任何关于如何查明真相的建议。
原来是#3。我在 $http 配置设置中添加了 "timeout" 限制,它开始正常响应。我不知道为什么这只对 Android 4.2 很重要。我猜这与它缺乏对承诺的(本机)支持有关。
我们的网络应用程序是使用 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
正在慢动作。 - http 请求超时时间过长。
没有明显的错误,其他一切似乎都正常。不幸的是,我的位置上没有确切的 USB Android 设备,这使得故障排除更加困难。
为什么会这样?我的理论是否比其他理论更可信?欢迎任何关于如何查明真相的建议。
原来是#3。我在 $http 配置设置中添加了 "timeout" 限制,它开始正常响应。我不知道为什么这只对 Android 4.2 很重要。我猜这与它缺乏对承诺的(本机)支持有关。