Angularjs推迟了日志运行计时器任务
Angularjs deferred log-running timer task(s)
构建一个Ionic应用程序时,我突然遇到了一个很难调试的问题,因为浏览器"推迟"了长时间运行的计时器任务,导致我的视图只能在其控制器中执行一次代码(即使显式重新加载了控制器)。
警告是:
推迟了长时间运行的计时器任务以提高滚动的平滑度。请参阅crbug.com/574343。
我追求的:
- 了解警告及其发生原因
- 关于如何调试此类警告的任何指导
提前谢谢。
更新我觉得重要的是要注意,虽然我从未收到错误,只是收到警告,这是我出现问题的原因,但我已经回滚到工作版本。
此工作版本仍然会出现警告,但不会影响我的应用程序的运行。
如果你使用$timeout执行任务,你必须停止并销毁它们,否则它们会产生你所说的错误
例如:
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请求减少为包含10个请求和10个单独http请求的单个请求。
关于你的问题,答案是每个浏览器的最大http请求。
"每个服务器/代理:"
如果我正确地假设了浏览器中的最大并行http连接,这里也回答了这个问题?
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 计时器循环从不运行
- Progressbar计时器,仅在页面刷新时重新加载
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- Angularjs推迟了日志运行计时器任务
- 是否可以在node.js中为多个独立任务创建多个计时器?
- 计时器(HH:MM:SS),带有用于在线任务的javascript