Periodic jank: ms
Handler jank: ms
Touch listener:
passive preventDefault
show non-blocking events

Scroll jank due to touch/wheel handlers demo

View on GitHub


The log shows the touch/wheel events which block scrolling (have cancelable=true).
Scroll the page, observing the latency associated with each event.
The 'running' animation represents the responsiveness of the JavaScript thread. Jank can be added to this thread as a regular repeating pattern ("periodic jank"), and/or directly inside of each touch/wheel handlers ("handler jank").
In Chrome 51+ and Safari 10, the touch/wheel listeners can be marked as passive to keep them from being able to block the scroll.
When working properly (eg. Chrome 49+) this demo will be able to measure both types of jank.
Safari 9+ appears to work well (though only at millisecond precision and with possible issues with NTP skew).

Scroll performance resources