Page MenuHomePhabricator

On dashboards, maybe only draw panels if all panels above them have already drawn
Closed, WontfixPublic

Description

If you have two panels which load over Ajax on a dashboard, like this:

+---------+
| Panel A |
+---------+

+---------+
| Panel B |
+---------+

...sometimes, "Panel B" will load before "Panel A". Then, when "Panel A" loads, it pushes "Panel B" way down the page. This feels erratic, since it creates this flash of content, and might be a worse UX than just waiting to draw "Panel B" until "Panel A" has finished.

We could also compromise and do something like "wait up to 2 seconds for all panels above to load before drawing".

I'm not sure if anyone else has noticed this or thinks the behavioral change would be an improvement. I'm not sure myself.

Event Timeline

epriestley raised the priority of this task from to Low.
epriestley updated the task description. (Show Details)
epriestley added a project: Dashboards.
epriestley updated the task description. (Show Details)
epriestley added a subscriber: epriestley.

My custom dashboards all seem to have a little placeholder panel, such that I can always tell Panel A is loading, even if B completes first.

Are there other panels that don't have the loading placeholder panel UI? That sounds like it would be really jarring... Its not too bad for me as is though with placeholder panels.

If everything has this placeholder UI, can we enhance that UI a bit to be a bit closer to the ultimate length maybe? e.g. perhaps we can guess they will hit the limit and make the loading box that big. (Opposite problem could happen now though where panel A loads huge, then suddenly gets smaller and B comes flying up.)

I do like the solution you've proposed too, I just worry that's technically challenging to get right.

Mine has a placeholder, the loading times just are out of sync often enough that I see a bunch of commits and then tasks don't pop in for a bit. The panel that pops in is like 800px tall or something, and the loading indicator is like 100px, so if I'd started reading anything in the panel below it jumps 700px away.

(I probably load the page like 35 million times a day, and on 50K of those the times happen to line up enough that it feels a little off.)

(And I think it's pretty hard to guess lengths.)

This hasn't bothered me, and the alternative seems like it'd slow the page down.

epriestley claimed this task.

My dashboard changed at some point and no one else seems to care, so let's wait for this to be more than an @epriestley-problem.