Can't we render each gadget in a Foundation-controlled <div> with a
height taller than the gadget ever typically flows to?



On Mon, Sep 4, 2017 at 12:00 AM, Krinkle <krinklem...@gmail.com> wrote:
> Hi Mike,
>
> Unexpected page jumps are never fun. They tend to be known as a "reflow" or
> FOUC [1], and are common all over the web at different times.
>
> Unfortunately, while there may be multiple gadgets / features exhibiting
> this undesired behaviour, it is not a general problem or limitation. As
> such, at the infrastructure level, no amount resourcing can make this class
> of bugs go away.
>
> In a nutshell, there are two primary ways to modify the page of a web site:
>
> * Styling rules (CSS): A declarative way to define rules for how certain
> page elements should look. (E.g. any "header" should be "blue".)
> * JavaScript programming (JS): A way to provide and execute any arbitrary
> program code. Including the ability to create new elements, create
> interactions, and even build entirely new applications.
>
> The styling rules are declarative and can be loaded and applied by the web
> browser before any content is shown. They apply continuously and
> retroactively. As such, most websites (including MediaWiki) do made the
> decision that it is worth delaying the initial show of article content by
> first loading all style rules (including those from Gadgets). That way, the
> initial show will consider all style rules from the start. (Instead of
> starting with unstyled plain text from the top left corner, and
> progressively applying each style as we go).
>
> The program code, on the other hand, is by design mostly asynchronous and
> cannot happen "instantaneously" (much like downloading something, or
> starting an application, or performing a computationally involved action).
> The program itself is in control of how and what it shows visually. It is
> in charge of whether to show individual pieces directly as they complete,
> or to insert everything at once after everything is complete. That is up to
> individual programs to decide.
>
> For developers, it is best practice to never insert or modify visual
> elements on the page from program code, unless their layout space is
> reserved ahead of time from HTML or CSS - precisely to avoid reflows. To my
> knowledge, there are no reflows on regular article views caused by
> MediaWiki core, nor any of the Wikimedia-maintained extensions (with the
> notable exception of certain CentralNotice banners, tracked as [2]).
>
> Some experimental Beta Features may have shipped in the past with a reflow
> bug, but these can (and for the most part, have) been addressed.
>
> That leaves Gadgets, and in that context, this is mostly limited by
> volunteer resourcing and program quality. Finding the right balance between
> style rules and program code is not always easy. It is typically easier to
> write program code without style rules. And as such, some users do it
> without. I've been in that situation myself as volunteer developer. With
> limited time, I can either spend time making the actual feature work better
> after you click it, or spend time avoiding a reflow. With more time,
> eventually things improve. But this is a bug for individual features or
> gadgets to address. There is not much we can do about it at the
> infrastructure level. When the style rules aren't there, they aren't there.
> And when a program later adds an element to the page, you'll want the web
> browser to show that in the same way as if it was there all along - which
> means other content essentially moves or jumps out of the way.
>
> For common use cases (like adding sidebar links or tabs), it may be
> possible to establish conventions that are easy to re-use so that people
> don't have to spend as much time thinking up new style rules. But overall,
> each use case will require its own style rule one way or another.
>
> -- Krinkle
>
> [1] https://en.wikipedia.org/wiki/Flash_of_unstyled_content
> [2] https://phabricator.wikimedia.org/T52865 - CentralNotice: Page content
> shifts
>
> Michael Peel wrote:
>>
>> This is possibly the most annoying feature of the Wikimedia projects at
> the moment. You access a page. Then you start reading or editing it. And
> then suddenly the page jumps when a fundraising banner / central notice /
> gadget / beta feature loads. So you have to start reading the page again,
> or you have to find where you were editing again, or you have to undo the
> change you just made since you made it in the wrong part of the page.
>> I understand that this isn't intentional. Presumably there is a
> phabricator ticket about this. But how can we fix this - does this need
> more developer time, is this an external problem that we need someone else
> to fix, or is this a WONTFIX?
>> Thanks,
>> Mike
> _______________________________________________
> Wikimedia-l mailing list, guidelines at: 
> https://meta.wikimedia.org/wiki/Mailing_lists/Guidelines and 
> https://meta.wikimedia.org/wiki/Wikimedia-l
> New messages to: Wikimedia-l@lists.wikimedia.org
> Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/wikimedia-l, 
> <mailto:wikimedia-l-requ...@lists.wikimedia.org?subject=unsubscribe>

_______________________________________________
Wikimedia-l mailing list, guidelines at: 
https://meta.wikimedia.org/wiki/Mailing_lists/Guidelines and 
https://meta.wikimedia.org/wiki/Wikimedia-l
New messages to: Wikimedia-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/wikimedia-l, 
<mailto:wikimedia-l-requ...@lists.wikimedia.org?subject=unsubscribe>

Reply via email to