簡體   English   中英

如果開發人員控制台處於活動狀態,Canvas 無法正常工作

[英]Canvas not working properly if developer console is active

幾天前,我想知道為什么我的 canvas 不能正常工作。 我正在使用 szimek 的庫來創建簽名,有時這些筆畫看起來有點瘋狂。 我還在 Edge(與 Chrome 的結果相同)和 TOR(按應有的工作)上進行了測試。

昨天,我找到了為什么這種隨機發生的解決方案。 當瀏覽器開發者控制台打開時,我的筆觸看起來很瘋狂。 如果它已關閉,則它們看起來正常(再次繪制時)。

有誰知道為什么會發生這種情況,還是由它的核心引擎引起的? 這是我的意思的一個例子: 在此處輸入圖像描述

謝謝你。

發生這種情況是因為在 Chromium(和 Gecko)中,根據規范建議mousemovepointermove等 UI 事件被限制為顯示器的幀刷新率。

但是,僅在 Chromium 中,無論出於何種原因,當開發工具打開時,它們會發出原始事件......
因此,當開發工具關閉時,即使硬件指針(例如鼠標)確實發出了更多事件,這些事件也已合並為單個指針移動事件,這可能會使線條更平滑,因為每個點都已被平均,但您實際上收到了更少的數據。

您可以從pointermove事件的getCoallescedEvents中檢索原始事件列表,正如我的另一個答案中所公開的那樣,如果需要,您還可以自己構建合並邏輯(使用requestAnimationFrame()作為節流器,這正是 Chromium做)。

至於為什么 Chromium 在開發工具打開時會禁用合並……這對我來說仍然是個謎,但我從來沒有足夠的動力去查看它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM