- From: Nat Duca <nduca@google.com>
- Date: Fri, 6 May 2016 12:27:37 -0700
- To: Ilya Grigorik <igrigorik@google.com>
- Cc: Ben Maurer <ben.maurer@gmail.com>, public-web-perf <public-web-perf@w3.org>, Ojan Vafai <ojan@google.com>
- Message-ID: <CAAMsTOtLshXi6SCHeuAOdhri8cqXM8=CSCy9zzCJGyCsw1N3pg@mail.gmail.com>
We once ran into a request from amazon for requestCallbackWhenElementOnscreen(). Similar concept. Goal was to know when you got rendered --- and if there was a delay due to late stage pipelient higns like eg image decode, or rasterization, we'd include that in the timing. Fundamentally, this whole space bumps up againt the :visited problem. So, to do anything here, we need to move the community forward on :visited mitigation, I fear. On Fri, May 6, 2016 at 11:42 AM, Ilya Grigorik <igrigorik@google.com> wrote: > 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:28:24 UTC