W3C home > Mailing lists > Public > whatwg@whatwg.org > July 2015

[whatwg] DOM Events Proposal: EventListenerOptions 'mayCancel' for improved scroll performance

From: Rick Byers <rbyers@chromium.org>
Date: Wed, 8 Jul 2015 15:12:36 -0400
Message-ID: <CAFUtAY-VQFsJD64JhB1ZswepFHe6zHhrZsm1SyrXa5qK6u4MUw@mail.gmail.com>
To: whatwg@whatwg.org
[Cross-posted to www-dom@w3.org - please let me know if there's a better
way to account for the DOM spec duality]

In Chromium we've long worked hard at maximizing  scroll performance, with
scroll-blocking DOM events (wheel and touchstart in particular) being by
far the biggest source of scroll jank.

I've been talking about this problem off-and-on for several years with
various folks including the Pointer Events Working Group, engineers of
other browser vendors, and engineers working on popular libraries that are
a source of such scroll-blocking event handlers (eg. Google Ads and
Google Analytics).

I've now written a relatively formal (but still sloppy by W3C standards)
concrete spec for extending the DOM event model
<http://rbyers.github.io/EventListenerOptions/EventListenerOptions.html> to
address this problem and would like to solicit feedback.  It's probably
most constructive to discuss specific issues on GitHub
<https://github.com/RByers/EventListenerOptions/issues>, but I'd appreciate
any high-level feedback here by e-mail too.  Please feel free to submit
pull requests for eg. editorial improvements.

Once there's a bit more consensus on the API shape, I plan to write a
polyfill and tests and then begin a prototype implementation in Chromium.
We have some initial evidence to believe that this (in partnership with a
few key library authors) can make a substantial improvement to the user
experience on mobile.  I hope to be able to share more concrete data on the
real-world performance impact, but there's obviously a chicken and egg
problem here.

Received on Wednesday, 8 July 2015 19:13:24 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 July 2015 19:13:25 UTC