Angularjs推迟日志运行计时器任务(s)

构build一个离子应用程序,并突然遇到一个问题,我发现真的很难debugging的地方是浏览器“推迟”长时间运行的计时器任务,导致我的视​​图只能执行一次控制器中的代码(即使控制器显式重新加载)。

警告是:

推迟长时间运行计时器任务以提高滚动平滑度。 请参阅crbug.com/574343。

我在之后:

  • 了解警告及其发生的原因
  • 任何指导如何去debugging这样的警告。

提前致谢。

更新我觉得重要的是要注意,虽然从来没有收到错误,只有警告作为我的问题的原因,我已经回滚到一个工作版本。

这个工作版本仍然有警告出现,但不影响我的应用程序的运行。

以及如果你正在使用$超时任务,你必须停止并摧毁他们,否则他们会创build你说的错误

例如:

var timer = $timeout( function() { console.log( "Timeout executed", Date.now() ); }, 2000 ); 

如果你像上面那样开始超时,那么你必须按如下方式销毁计时器:

  // When the DOM element is removed from the page, // AngularJS will trigger the $destroy event on // the scope. This gives us a chance to cancel any // pending timer that we may have. $scope.$on( "$destroy", function( event ) { $timeout.cancel( timer ); } ); 

只有在第一次加载视图时调用函数时,才面临这个问题。 在控制台中注意到这个警告,但不知道这是否与只被调用一次的函数有关。 在控制器中,我将我的函数调用移动到“$ ionicView.enter”中,每次加载视图时都会调用它。

 $scope.$on('$ionicView.enter', function () { callMyFunction(); }); 

希望这可以帮助。

听起来像你可能有最大数量的连接在您的浏览器。 您可能希望将您的http请求减less为包含10个请求与10个单独的http请求的单个请求。

关于你的问题的答案是沿着每个浏览器的最大HTTP请求线。

“每个服务器/代理的最大默认同时持续连接数:”

在这里也回答如果我正确地假设 – 浏览器中最大并行http连接?