whiteout-io / mail

[ABANDONED] Mail App with integrated OpenPGP encryption
https://whiteout.io
MIT License
545 stars 96 forks source link

Allow limiting of stored emails. #155

Open marcus433 opened 10 years ago

marcus433 commented 10 years ago

It WhiteoutMail when scrolling through thousands of emails the client can get lagged as the DOM is being overloaded. A possible solution to this may be to remove messages from top while scrolling down and add them again while scrolling up. Also it would be really great to have a feature allowing the user to choose the amount of emails wanted synced with whiteoutMail. Syncing every email from every folder can take up a lot of space and slow down the client so possibly a preset of a few thousand emails and ability for user to change sync limit. Thanks!

felixhammerl commented 10 years ago

thanks for bringin that up! what you're saying is absolutely right, the issues you just brought up are just not as high up in our roadmap.

the average user will probably skim through about 100 mails or so at a time, so that's not really a problem. the angular lib we use adds DOM nodes for messages on demand without lag. we tried out a couple of solutions that did exactly what you described, but none of those actually worked well. if you have a angular lib that is lightweight, provides 60fps scrolling perf without screwing around with the scroll events, and works well across all platforms, i'd be happy to hear about it :+1:

as for the syncing: for now, it works well enought to keep it all in there. we don't sync all of the emails, just the ones you actually viewed. housekeeping in terms of keeping the hdd footprint low is down the road, but it is in the roadmap

xokvictor commented 9 years ago

+1

marcus433 commented 9 years ago

Regarding DOM Virtualization, this appears to be a relatively good solution for Angular https://github.com/mallzee/angular-ui-table-view

tanx commented 9 years ago

@marcus433 thanks for the example. Seems to work well on Chrome/Android but is buggy on iOS.

Regarding performance, we're going to start digging into this and try to identify/fix the main bottle-necks soon.

marcus433 commented 9 years ago

@tanx Ok! I've also found that you can get even better performance by handling the UI with angular but rendering the message list with ReactJS or Mithril.