- From: Rafael Weinstein <rafaelw@google.com>
- Date: Tue, 5 Jul 2011 17:27:30 -0700
- To: Ryosuke Niwa <rniwa@webkit.org>
- Cc: Olli@pettay.fi, Aryeh Gregor <Simetrical+w3c@gmail.com>, Adam Klein <adamk@google.com>, Jonas Sicking <jonas@sicking.cc>, Anne van Kesteren <annevk@opera.com>, Webapps WG <public-webapps@w3.org>
On Tue, Jul 5, 2011 at 3:55 PM, Ryosuke Niwa <rniwa@webkit.org> wrote: > On Tue, Jul 5, 2011 at 3:24 PM, Olli Pettay <Olli.Pettay@helsinki.fi> wrote: >> >> On 07/06/2011 12:48 AM, Rafael Weinstein wrote: >>> >>> On Tue, Jul 5, 2011 at 2:38 PM, Olli Pettay<Olli.Pettay@helsinki.fi> >>> wrote: >>>> >>>> What is the reason to require a new mechanism for async handling? Could >>>> listeners be handled in a task?Basically, if DOM is mutated during task A, a >>>> new task, B, is scheduled and all the mutation listeners will be >>>> called there. >>> >>> It's too late by then. Most importantly, visual artifacts of incomplete >>> DOM work may have been seen by the user. >> >> If that is the reason, I don't think it really holds. The script may force >> a layout flush right after DOM mutation and then cause some popup to shows >> up which may cause repainting in the main page. > > Layout is different from paint at least in WebKit. > But I agree with you that if any observer calls alert, showModalDialog, and > other APIs that forces repaint, you can't really do anything about it. > Also, UA vendors can decide to delay the repaint until all mutation > observers are called in common cases even if they were completely > asynchronous. It seems like these are rarified enough cases that visual artifacts are acceptable collateral damage if you do this. [Put another way, if you care enough about the visual polish of your app that you will put energy into avoiding flickr, you probably aren't using alert and showModalDialog anyway]. Also, it's up to the app when to do it, so it's entirely in its control (and thus avoid visual artifacts). Note that this is a problem with both proposals. Work done in (at least some) mutation observers is delayed. If a sync paint occurs before it, it's work won't be reflected on the screen. > - Ryosuke >
Received on Wednesday, 6 July 2011 00:27:56 UTC