Closed Bug 1124153 Opened 10 years ago Closed 8 months ago

[ReadingList] Make the list of items in the Reading List sidebar scale well

Categories

(Firefox Graveyard :: Reading List, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: Unfocused, Unassigned)

References

Details

(Whiteboard: [reader-ui])

We need a solution that solves the inevitable issues around scaling a large list of ReadingList items. Just generating DOM elements for hundreds of items isn't going to perform the best. As an additional problem, as the list grows large it will become less useful. Having a list of 10 items is useful, having a list of 1000 items makes the scrollbar useless and you're not going to find the 743rd item very easily. Options: * Ignore problem, always display all items * Display X items. When scrolling reaches end, auto-add X more items * Only make it appear as if all items are displayed (out of view, we just have blank space - when we scroll, items are dynamically generated) * "Show more" button at end, which adds X more items to the end of the list * Paged display * Only allow showing first X items
Flags: qe-verify+
Flags: firefox-backlog+
Michael: Thoughts on the options here?
Flags: needinfo?(mmaslaney)
If possible, breaking things up by relative date might be an option here. Yesterday, This Week, Last Week, etc.
I like the idea of chunking/labeling the list based on time added. Moreover, there's work that Philipp and I completed for the TabCenter concept that I find beneficial regarding the Reading List sidebar. http://invis.io/GT22ZN6QW On pages three and four you'll find interactions for tab scaling (thumbnail to favicon) and column scaling. I believe we could adopt the thumbnail to favicon scaling for users who have more than 10+ items in their Reading List.
Flags: needinfo?(mmaslaney)
Chunking by time added helps with finding by time, but doesn't really help with scaling - especially given the time scales would presumably be increasing the further back you go (today, yesterday, last week, last month, last year). But we need a way to cope with the worst-case scenario here: Initial import. Potentially we could have a thousand items imported on day one. (If we do want to do time-based chunking, we'll need a separate bug. And TBH, I'm not sure it fits into v1)
Flags: needinfo?(mmaslaney)
Blair just so I know, besides the first option, what would you consider to be the simpler option to implement in the v1 time frame. > (from comment #0) > Options: > * Ignore problem, always display all items > * Display X items. When scrolling reaches end, auto-add X more items > * Only make it appear as if all items are displayed (out of view, we just > have blank space - when we scroll, items are dynamically generated) > * "Show more" button at end, which adds X more items to the end of the list > * Paged display > * Only allow showing first X items
Flags: needinfo?(bmcbride)
(In reply to Bryan Clark (Firefox PM) [:clarkbw] from comment #5) > what would you consider to > be the simpler option to implement in the v1 time frame. Only allow showing X items is the easiest, but also leads to a shitty experience, so I think we should avoid that if we can :) In order or easiest to most difficult/regression-prone: * "Show more" button at end, which adds X more items to the end of the list * Display X items. When scrolling reaches end, auto-add X more items * Paged display * Only make it appear as if all items are displayed (out of view, we just have blank space - when we scroll, items are dynamically generated)
Flags: needinfo?(bmcbride)
For V1 let's move forward with the first option of adding a "Show more" button that will load the next (10) articles.
Flags: needinfo?(mmaslaney)
Sorting out strings... Micheal, can you confirm? Button label: "Show more" Button tooltip: "Show 10 more items"
Flags: needinfo?(mmaslaney)
+1
Flags: needinfo?(mmaslaney)
Blocks: 1132074
Mass change of ReadingList bugs, moving to their own component. Filter bugspam on the following quote: “Reading is to the mind what exercise is to the body.” ― Joseph Addison
Component: General → Reading List
(In reply to Blair McBride [:Unfocused] (I don't read bugmail - needinfo? me!) from comment #8) > Sorting out strings... Micheal, can you confirm? > > Button label: "Show more" > Button tooltip: "Show 10 more items" I just panicked thinking this didn't make it but bug 1133673 does actually include these strings so we're good to go from that angle.
P2 to investigate that this isn't a terrible terrible issue with a modest number of items. Assuming so, it's actually a P3 we can fix later on.
Priority: -- → P2
No longer blocks: 1132074
Deprioritized during backlog review. Removed from IT 39.2 priority backlog and not part of the initial Q2 campaign release.
Depends on: 1149847
FYI Blair, bug 1147554 is fixing a Talos regression in startup IO by lazily creating the DB connection. It's not 100% clear yet if that fix will work, since even if ReadingList internally lazily creates its connection, it's for naught if some consumer forces it to create its connection on startup. But assuming it does work, you'll probably want to move your _prepopulate call from the ctor to some new method that the store would call when it creates its connection. (I see your bugzilla name says you don't read bugmail so I'm needinfo'ing so you see this. I don't actually need a response.)
Flags: needinfo?(bmcbride)
I assume you mean this for bug 1136570 :) Will comment there to avoid future confusion.
Flags: needinfo?(bmcbride)
Oops, tab fail, yeah. :embarrassed:
Whiteboard: [reader-ui]
Product: Firefox → Firefox Graveyard
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.