我正在尝试使用角度来构建离子(1)app.
我不明白为什么我会收到这个警告
我不明白为什么我会收到这个警告
“Blink推迟了一项任务,以使滚动更顺畅.您的计时器和网络任务运行时间不应超过50毫秒,以避免这种情况.请参阅https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/rail和https://crbug.com/574343#c40以获取更多信息.”
当我使用页面滑块时,还有其他警告
“忽略尝试使用cancelable = false取消touchmove事件,例如因为滚动正在进行且无法中断.”
“由于主线程繁忙,’touchstart’输入事件的处理延迟了835毫秒.考虑将事件处理程序标记为”被动“以使页面响应更快”
这个警告是“正常”. webview基本上告诉你一些事件被绑定到滚动事件甚至触摸事件,这可能会减慢应用程序的速度.谷歌文档建议例如使用间隔而不是直接在touchmove / drag事件上运行计算或函数,这对于具有webview的移动应用程序来说并不总是可行,具体取决于您尝试完成UX的目的.
此外,如果你使用setInterval,你将不得不使用疯狂的激进时间,如10毫秒,你的滚动/拖动将看起来非常糟糕.
只要忘记这些警告,它们是非常通用的,很可能是指导方针,但大部分时间都无法避免.
如果您仍想避免警告,这是一个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 }