Javascript 如果开发人员控制台处于活动状态,画布将无法正常工作

Javascript 如果开发人员控制台处于活动状态,画布将无法正常工作,javascript,html,canvas,libraries,Javascript,Html,Canvas,Libraries,几天前,我想知道为什么我的画布不能正常工作。我正在使用szimek的库来创建签名,有时这些笔划看起来有点疯狂。我还测试了Edge(其结果与Chrome相同)和TOR(按其应做的工作) 昨天,我找到了这种情况随机发生的原因。当浏览器开发人员控制台打开时,我的笔划看起来很疯狂。如果它是关闭的,则它们看起来正常(再次绘制时) 有人知道为什么会发生这种情况,或者是它的核心引擎造成的吗? 这里有一个例子来说明我的意思: 谢谢。这是因为在Chromium(和Gecko)中,根据,mousemove或poin

几天前,我想知道为什么我的画布不能正常工作。我正在使用szimek的库来创建签名,有时这些笔划看起来有点疯狂。我还测试了Edge(其结果与Chrome相同)和TOR(按其应做的工作)

昨天,我找到了这种情况随机发生的原因。当浏览器开发人员控制台打开时,我的笔划看起来很疯狂。如果它是关闭的,则它们看起来正常(再次绘制时)

有人知道为什么会发生这种情况,或者是它的核心引擎造成的吗? 这里有一个例子来说明我的意思:


谢谢。

这是因为在Chromium(和Gecko)中,根据,mousemove或pointermove等UI事件被限制为监视器的帧刷新率

但是,仅在Chromium中,无论出于何种原因,当开发工具打开时,它们会发出原始事件…
因此,当开发工具关闭时,即使硬件指针(例如鼠标)确实发出了更多事件,这些事件也会变成一个单点移动事件,这可能会画出更平滑的线条,因为每个点都已平均,但实际上收到的数据较少

您可以从pointermove事件中检索原始事件列表,如我的文章中所示,并且如果需要,您还可以从这些原始事件中构建聚合逻辑(使用Chromium作为节流器,这正是Chromium所做的)


至于为什么Chromium会在开发工具打开时禁用合并。。。这对我来说仍然是一个谜,但我从来没有足够的动力去查找它。

如果你用鼠标/touchmove eventhandler函数在控制台上记录了一些东西,它可能会对性能产生巨大的影响。@Teemu直到一个月前或是什么时候才发生这种情况。一把小提琴可以很方便地复制这个问题,在我刚刚打开的一个在线画布应用程序上看起来不错,所以它可能是你的代码,也可能是你的库(库中是否有一个演示,你可以链接到它)。请包含你正在使用的代码的一部分?