biocore / biocore/empress

Make load times faster for Chrome?

Open
#338 0 comments 0 reactions 0 assignees View on GitHub
performance refactoring
Dominant language
JavaScript
Stars
56
Forks
32
PR merge metrics
No merged PRs in 30d

Description

This came up in our meeting this morning.

In general, Firefox seems to have faster load times for large trees. See [this SO thread](https://stackoverflow.com/questions/59308105/why-is-firefox-much-faster-than-chrome-when-loading-big-documents/59438847#59438847) for details on why this may be the case (thanks @kwcantrell for finding this!).

It may be possible to get around this by forcing Chrome to defer loading large pieces of data (see that SO thread for one implementation), but as @ElDeveloper pointed out this would break Empress when looking at local HTML documents -- see [here](https://stackoverflow.com/a/11063963/10730311) for some background as to why this would anger browsers.

It may be possible to get around _that_ by only supporting using Empress through view.qiime2.org and through starting up a local python server, but in any case it'd still break `qiime tools view`. (We could handle this semi-gracefully by detecting if XMLHttpRequests cause an error and if so showing a message explaining to the user that only certain ways of using Empress are supported.)

... TLDR, less crazy performance fixes are likely a better idea for the short term :)

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Reproduce loading a large tree in Chrome and Firefox through view.qiime2.org, qiime tools view, and a local Python server, then profile the slow path; done means faster Chrome loads without breaking local HTML usage or supported viewing workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.