- 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