当前位置: 首页 > 知识库问答 >
问题:

显示错误-“闪烁延迟任务以使滚动更平滑”

司寇高峯
2023-03-14

我正在尝试使用angular构建ionic(1)应用程序。我不明白为什么我会收到这个警告

“Blink延迟任务以使滚动更平滑。您的计时器和网络任务的运行时间应少于50毫秒,以避免出现这种情况。请参阅。”https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/rail和https://crbug.com/574343#c40了解更多信息。”

当我使用页面滑块时,额外的警告是

msgstr"忽略了取消可取消=false的触摸事件的尝试,例如,因为滚动正在进行中,不能中断。"

由于主线程占线,“触摸启动”输入事件的处理延迟了835毫秒。考虑将事件处理程序标记为“被动”以使页面更加响应。

共有3个答案

慕河
2023-03-14

这些实际上是严重的警告。我在这个警告上花了太多时间。如果有长时间运行的javascript任务,如计时器或网络任务,那么它将被停止,直到你scrolling.then当滚动完成这些任务被恢复。所以在执行这些繁重的处理任务时特别小心。

诸葛品
2023-03-14

可能是不相关的,但根据我的经验,基本上你得到了这个,因为你的角度/页面仍在集中处理。如果我在导航到一个新的状态后尝试过快地滚动,我通常会收到这样的警告——如果我等一秒钟就可以了。我的解决方案是禁用js滚动,以便在更相关的地方释放更多的能量。检查滚动。JS滚动(值)onhttp://ionicframework.com/docs/api/provider/$ionicConfigProvider/

齐飞星
2023-03-14

此警告为“正常”。webview基本上是告诉你一些事件绑定到滚动事件甚至触摸事件,这可能会减慢应用程序的速度。例如,google文档建议使用时间间隔,而不是直接在touchmove/drag事件上运行计算或函数,这在带有webview的移动应用程序中并不总是可能的,这取决于您试图完成的UX操作。

此外,如果你确实使用了setInterval,你将不得不使用像10ms这样疯狂的计时,你的滚动/拖动看起来会非常糟糕。忘了这些警告吧,它们是非常通用且最有可能的指导方针,但大多数情况下无法避免。

如果您仍然希望避免警告,下面是一个jQuery示例。其思想是从事件中捕获任何值,然后在单独的线程上运行计算。

 var int, x, y;

 $('#mydiv').on('touchstart', function(event){
      int = setInterval(work, 20);
 });

 $('#mydiv').on('touchend', function(event){
      clearInterval(int);
 });

 $('#mydiv').on('touchmove', function(event){
      x = event.touches[0].pageX;
      y = event.touches[0].pageY;
 });  

 function work(){
      //how you can do whatever with x y without getting a warning 
 }
 类似资料:
  • 我正在使用JSF2。0和PrimeFaces3。1和3。1用于业务逻辑。我试图使用DataTable—延迟加载。但它给了我以下的错误。请帮忙。 发生错误:

  • 在此之前,旧页面仍然会继续显示(例如,如果我正在浏览另一个页面,然后决定看到这个项目索引)。

  • 在C#中,我有以下两个简单的例子: 第一个示例创建一个打印“开始”的任务,等待5秒钟打印“完成”,然后结束任务。我等待任务完成,然后打印“全部完成”。当我运行测试时,它会按预期运行。 第二个测试应该具有相同的行为,只是由于使用了async和Wait,任务内部的等待应该是非阻塞的。但是这个测试只打印“开始”,然后立即打印“全部完成”和“完成”,永远不会打印。 我不知道我为什么会有这样的行为:S非常感

  • 问题内容: 我试图用来显示两个,一个主菜单和一个控件屏幕。当我将两张卡片添加到卡中时,它只会显示两张闪烁的图像。这是我的代码: MazeGamePanel: 公共类MazeGamePanel扩展了JPanel实现Runnable { } MazeControlsPanel: 包装屏幕; 问题答案: 这是一个问题: 不要在Swing程序中使用java.util.Timer,因为您会遇到线程问题。而是

  • 问题内容: 我有一个div“框”,当用户滚动到下一页时,它会逐渐使用“ .fp-viewing”作为锚点淡入淡出以开始过渡效果。问题是,当触发.fp- viewing时,页面开始滚动,并且在动画结束之前将框滚动出视图。 触发.fp-viewing时,如何延迟滚动开始,直到box在4s内完成动画播放? 问题答案: 您可以使用fullpage.js提供的选项来取消运动。