我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
What is this console warning I keep getting - Deferred long-running timer task(s) to improve scrolling smoothness?
我的应用程序是Cordova应用程序。本周我在我的控制台上看到了很多警告:
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
本周以前从未见过。我确实使用了很多设置,因为有些进程相当大,因此没有向用户呈现它的处理过程。
// GETS MEDICINES VIA MYCLOUD
function getMedicinesFromServer() {
// Start Process
myProcess("Syncing Medicines", true);
setTimeout(function () {
var data = getAllModifiedMedicines(viewModel.MedicineCupboard());
sendAllMedicines(data);
}, 300);
}
这是假阳性还是有更好的方法。
这些愚蠢超时的全部原因是为了确保用户知道当他们点击按钮向上推送数据时,他们会意识到这一点。
老办法:
myProcess("Syncing Medicines", true);
var data = getAllModifiedMedicines(viewModel.MedicineCupboard());
sendAllMedicines(data);
没有保证向用户呈现该过程。
警告告诉您,您的计时器没有按时启动,因为这是一个长时间运行的回调(>50ms),并且用户将要滚动。当你的回调正在运行时,Chrome无法开始滚动页面,因此这会导致"jank",即用户输入无法及时处理。为了让用户体验更好,Chrome决定推迟启动回调,直到运行回调不会对用户产生负面影响。
我不知道你想做什么的细节,但正确的做法是把你的一个大回调分成小批量,然后分散开来,这样任何一个调用都不会明显延迟用户的操作。您还可以考虑使用requestIdleCallback,它只会在Chrome空闲时调用您的函数,非常适合非时间关键任务。(但是,截至目前,requestIdleCallback仅在Chrome上受支持)。
相关文章:
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- 单点高库存滚动条问题
- jQuery高亮显示滚动导航链接不起作用
- 如何使高图工具提示在显示后可滚动
- 窗口滚动 Y = 0 在高图表重绘()
- 如何在具有固定宽度和水平滚动条的容器中具有高图表图表
- 最终任务,如果可能的话,在Javascript中查找,通过单击滚动条来检测页面滚动
- 有没有办法使背景图像自动宽度,全高,高度滚动,无宽度滚动
- 高图表滚动条不起作用
- 启用滚动高图表,高股票
- 高库存滚动条没有'不能在svg foreignObject中工作
- Iframe全高在wordpress页面问题(没有滚动条)
- 如何在点击按钮时隐藏/显示高图表的滚动条和范围选择器
- 为什么在网页中添加语法高亮后滚动条不工作
- 如何避免高图表中的水平滚动条
- 非默认行高的可处理滚动问题
- 高图中没有显示y轴的滚动条
- 项目研究-可缩放,可滚动,可悬停的高分辨率图像
- 高亮显示“页面滚动”上的活动菜单项
- 滚动时活动部分的图像高亮显示(悬停状态)