- From: Ilya Grigorik <igrigorik@google.com>
- Date: Fri, 6 May 2016 11:42:26 -0700
- To: Ben Maurer <ben.maurer@gmail.com>
- Cc: public-web-perf <public-web-perf@w3.org>, Ojan Vafai <ojan@google.com>
- Message-ID: <CADXXVKrm3+_DL-YqcMrfr6s7OEmLDAm=nkaaOG3pqchbTUb2PQ@mail.gmail.com>
On Wed, May 4, 2016 at 3:10 PM, Ben Maurer <ben.maurer@gmail.com> wrote: > Hey guys -- > > There was some discussion internally at FB about the frame timing API and > that prompted a question today. > > Imagine the following JS code: > > function RenderHello() { > ReactDOM.render( > <Hello name="World" />, > document.getElementById('container') > ); > window.performance.mark('hello_rendered'); > } > > The developer wants to know when the Hello react component is "done" and > so they set a performance mark once the element is inserted into the DOM. > Pardon my ignorance of React.. I'm looking at the docs, and it looks like it accepts a third callback parameter [1]: "If the optional callback is provided, it will be executed after the component is rendered or updated." ^ what does the above encompass, exactly? [1] https://facebook.github.io/react/docs/top-level-api.html#reactdom.render However, this isn't actually correct. The user only sees the Hello element > once the browser paints that frame. For example, if a setTimeout() call > executed during the frame that took 1 second the user would only see the > element at the end of that second. > > This seems like a problem that the Frame Timing API would ideally help to > solve. But it wasn't clear that it was possible to determine this via the > API. > FT doesn't address this. As specced, it only lets you know if there was a slow frame... what was painted within that frame is completely opaque. Potentially, if we can work out the technical bits, I could see us exposing some high-level attribution information on what may have been the cause of the slow frame (e.g. script task, another frame, etc), but I don't think we'll ever get to element-level insights due to technical and privacy/security constraints. FWIW, related discussion: https://github.com/w3c/frame-timing/issues/53#issuecomment-206512574
Received on Friday, 6 May 2016 19:11:36 UTC