Skip to content

Flash of Nothingness #2

@pushred

Description

@pushred

One unavoidable side effect of fetching resources clientside if latency. If left unhandled this can definitely make for an odd user experience, where different pieces of a page pop into place here and there as data is gathered, manipulated, and rendered into the page.

Bootstrapping a page with as much content as possible serverside is the usual go to for combatting this. Implementing spinners and other indeterminate progress indicators is important. Some artfully constructed CSS can also mitigate the chaos by blocking out content containers in advance. The Solidus server and the callbacks should help with implemention of all this. But something else we should perhaps consider is caching via localStorage.

There's some precedence, data, and libraries out there, that all especially make a case for memory-constrained mobile devices:

Not sure how what clientside cache headers generally look like, whether we'd need to invalidate resources too quickly for this to be useful. Perhaps we could take a background fetching approach as we do on the server though and only replace resources when they actually change, ensuring that after the initial caching we'd usually have some data onhand, albeit possibly slightly stale.

Something to think about.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions