1

In diesem fiddle demo, drücken und bewegen Sie die Maus wird den Punkt entsprechend der Mausposition zeichnen. Die Zeichnungsmethode ist auf mousemove Rückruf zu hören, aber es zeichnet den diskreten Punkt, der zeigt, dass das Ereignis mousemove nicht kontinuierlich ausgelöst wird.Wird Mausereignis einmal pro Frame ausgelöst?

Was ist mehr, ich sammle die event.timeStamp und Login-Konsole. Ich fand, dass der Offset zwischen benachbarten Ereignissen in der Nähe von 16,7 ms liegt. So ist mousemove Ereignis Feuer einmal pro Rahmen?

+0

Nur um einen Datenpunkt hinzuzufügen, habe ich genau 60 Mausbewegungen Ereignisse auf einem 60 Hz Monitor auf Firefox und Chromium auf Gnome auf Arch Linux, was wirklich problematisch ist, wenn Sie qualitativ hochwertige Bilder in einem Browser machen wollen. –

Antwort

2

Die Ereignishäufigkeit mousemove ist implementierungsspezifisch und nicht durch eine Spezifikation definiert.

Ein Benutzeragent MUSS dieses Ereignis absetzen, wenn ein Zeigegerät verschoben wird, während es sich über einem Element befindet. Die Häufigkeitsrate von Ereignissen, während das Zeigegerät bewegt wird, ist implementations-, geräte- und plattformspezifisch, aber mehrere aufeinanderfolgende Mausbewegungsereignisse SOLLTEN für anhaltende Zeiger-Gerät-Bewegung abgefeuert werden, anstelle eines einzelnen Ereignisses für jede Mausbewegung. Implementierungen werden empfohlen, die optimale Frequenzrate zu bestimmen, um die Reaktionsfähigkeit mit der Leistung in Einklang zu bringen.

- UI Events, W3C Working Draft, 04 August 2016

Es ist durchaus möglich, einige Browser auf einigen Plattformen wird es begrenzen, um einmal pro Frame. Es gibt jedoch keine Garantie dafür, dass ein Browser dies weiterhin tut.

Wenn Sie eine durchgehende Linie zeichnen möchten, müssen Sie zwischen zwei Punkten interpolieren.

+0

Es ist genau das, was ich suche, danke! –

Verwandte Themen