AngularJS + Android 4.2:反应非常慢

时间:2015-03-18 18:43:49

标签: javascript android angularjs android-4.2-jelly-bean

我们的网络应用程序是使用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分钟后。

我有几个理论:

  1. 承诺需要很长时间才能得到解决,
  2. $watch在慢动作中徘徊。
  3. http请求需要很长时间才能超时。
  4. 没有明显的错误,其他一切似乎都有效。不幸的是,我的位置上没有确切的USB Android设备,这使得故障排除更加困难。

    为什么会这样?我的任何理论都比其他理论更合理吗?关于如何深入了解这一点的任何建议都是值得欢迎的。

1 个答案:

答案 0 :(得分:0)

原来是#3。我在$ http配置设置中添加了“超时”限制,它开始正常响应。我不知道为什么这只对Android 4.2很重要。我猜它与缺乏(本机)支持承诺有关。