Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs延迟日志运行计时器任务_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

Javascript Angularjs延迟日志运行计时器任务

Javascript Angularjs延迟日志运行计时器任务,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,在构建一个Ionic应用程序时,我突然遇到了一个问题,即浏览器“延迟”长时间运行的计时器任务,导致我的视图只在其控制器中执行一次代码(即使在显式重新加载控制器时),我发现调试该问题非常困难 警告是: 延迟长时间运行的计时器任务,以提高滚动平滑度。见crbug.com/574343 我想要的是: 了解警告及其发生原因 关于如何调试此类警告的任何指导 提前谢谢 更新 我觉得有一点很重要,那就是我从来没有收到过错误,只有警告是我问题的原因,但后来我又回到了工作版本 此工作版本仍会出现警告,但不会影

在构建一个Ionic应用程序时,我突然遇到了一个问题,即浏览器“延迟”长时间运行的计时器任务,导致我的视图只在其控制器中执行一次代码(即使在显式重新加载控制器时),我发现调试该问题非常困难

警告是:

延迟长时间运行的计时器任务,以提高滚动平滑度。见crbug.com/574343

我想要的是:

  • 了解警告及其发生原因
  • 关于如何调试此类警告的任何指导
提前谢谢

更新 我觉得有一点很重要,那就是我从来没有收到过错误,只有警告是我问题的原因,但后来我又回到了工作版本


此工作版本仍会出现警告,但不会影响应用程序的运行

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

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

希望这能有所帮助。

如果您使用$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 );
                        }
                    );

听起来您的浏览器中可能有最大连接数。您可能希望将http请求减少为包含10个请求而不是10个单独http请求的单个请求

关于您的问题,答案大致相当于每个浏览器的最大http请求数

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


如果我正确地假设-

如警告中所述,至少有一个任务正在阻止此操作,也可以在此处进行回答。我要做的是找出哪项任务可能导致“沉重”。如果您在这方面运气不好,我会注释掉代码块,看看警告从哪里开始出现/消失。@user013948我尝试过,但没有成功,主要原因是在我离开视图(向后或向前)之前,错误不会弹出。对我来说,这是在“startapp”(几乎为空)上发生的返回历史时,在ionic 1.3.0上的控制器上只有两个状态和最少代码的项目。我只有两页,当按下第二页时,导航到第一页后会出现此错误。即使如此,它也不总是记录此错误。我在以前版本的ionic中没有注意到这一点,因此这表明这是一个ionic问题。@thepio您收到的错误是什么?我觉得重要的是要注意,如果你收到的是一个错误而不是一个警告,那么也许你的处境与我不同,我的“休息”是由警告而不是错误引起的。也许我们可以帮助解决你的“错误”。从理论上讲,这应该是可行的,而且我已经实现了这一点,这不是我的解决方案,但可能是其他人的解决方案。不幸的是,即使使用这种方法,“enter”事件也只调用过一次。这对我来说也不是一个解决方案,因为我已经在使用$ionicView.afterEnter,并且仍然得到这个消息error@Atula,很抱歉,但我的答案是在视图加载时执行函数,而不是消除错误。。警告要准确。我仍然不确定这个警告是否会导致任何问题,因为我的应用程序工作正常。这里也是@Amit。我的应用程序也运行良好。但我们无法摆脱这个警告。