SequenceBoard & SequenceAlignment: performance issues with large sequence
On pages with a SequenceBoard
showing a large sequence (e.g. 18S, 25S), there is some performance issues (lag).
Also valid on SequenceAlignment
with most rRNA sequences as multiple one are represented.
💡 Ideas to improve perfs:
- as mentioned in comment #72 (comment 256438), the performance issues are caused by the number of DOM elements on the page, which can be very high (e.g. on alignments of several large sequences, when each nucleotide of each sequence is a DOM element), so reducing it by grouping several nucleotides in a same DOM element is the key to reduce this number
- when grouping nucl. in a single DOM element the main issue is that we lose the possibility to tag or reference each of them individualy, which can be problematic to position boxes
- A solution could be to group nucl. whithout interest (i.e. which are not at the start or end of a box), and put those which needs to be referenced individually in dedicated elements.
- Another option is to always group nucl., and use the positions (in the sequence) of the box to compute (using character size, line count, etc....) the absolute position of the concerned nucl. without the need to reference them
- Those options probably require many
computed
updates, so updating Vue to v3.4 before could be a good idea (because of it bringing lazycomputed
updates) like for #139)
Edited by Julien Touchais