W3C home > Mailing lists > Public > www-style@w3.org > September 2011

Re: [CSSOM] Revisiting transforms and getBoundingClientRect()

From: John J Barton <johnjbarton@johnjbarton.com>
Date: Wed, 7 Sep 2011 22:04:31 -0700
Message-ID: <CAFAtnWwX91dhj9uF6QJ0iZ94dsooB5xNsGqaKEHvWHkMH7Vc=A@mail.gmail.com>
To: robert@ocallahan.org
Cc: Erik Arvidsson <arv@chromium.org>, "Tab Atkins Jr." <jackalmage@gmail.com>, Andrew Dupont <w3@andrewdupont.net>, www-style@w3.org
On Wed, Sep 7, 2011 at 9:04 PM, Robert O'Callahan <robert@ocallahan.org> wrote:
> On Thu, Sep 8, 2011 at 2:12 PM, John J Barton <johnjbarton@johnjbarton.com>
> wrote:
>>
>> Lack of information and explicit signals on when layout has been
>> triggered.
>
> Ok, let's fix that then. Adding a "window.getLayoutChangeCount()" method
> would be super-easy, for starters.

>From the tools point of view, a layout event would be better (it can
count). In the short run this makes the problem worse: now we are in
JS, do something that triggers layout, enter layout code, call JS
event handler for layout event, return to layout, return to JS. (The
event handler could be very expensive but it's up the tool/dev to deal
with that). I guess we call only if we have a handler set and the
handler would be per document or window so it's pretty cheap.

If the event has some info on how much the layout 'cost', then the dev
would see "OMG my function is firing 47million layouts at 10ms each!".

First however we need a way for devs to avoid triggering layout, in a
way that does not pin down the browser layout engine implementations.
Knowledge is an annoying thing when you can't do anything with it.

Is there/could there a way to take action on such info? Or maybe the
real question is more like: what prevents multiple JS ops from being
batched and triggering one or at least potentially fewer layouts.

(Apologies in advance if my point of view is ill informed).

jjb
Received on Thursday, 8 September 2011 05:05:45 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:44 GMT