Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve performance for most common operations (view next email, delete email, move email to another folder, etc.) #1144

Closed
marclaporte opened this issue Aug 4, 2024 · 5 comments
Assignees

Comments

@marclaporte
Copy link
Member

marclaporte commented Aug 4, 2024

As of Cypht 2.2.0, the feature set is getting pretty impressive.

However, performance is slower than Gmail or Roundcube. To illustrate, there is a video of deleting emails in Roundcube/Kolab here: #435

Let's explore how this could be improved.

@mercihabam
Copy link
Member

Performance is slow because each operation makes a separate request to the backend service and the IMAP server, even though this is unnecessary in most cases. The most important actions are fetching the message list and fetching the message content. These could be combined, so that once the message list is displayed, the user doesn't need to make another request to view the message content or move to the next message.

Also, actions such as delete, copy, and move should not reload the message list. The optimal solution would be to manage the message state via JavaScript. Instead of requesting a new list from the server, these actions would update the display by modifying the current state.

I'll explore this approach and see how fast it becomes.

@mercihabam
Copy link
Member

I avoided combining the two requests because it results in a longer request, causing the user to wait even longer for the list of messages to appear. Instead, I worked on #1252 which improves the message caching to prevent multiple fetches of the same message when requested and ensure that viewing the next email gets done instantly after a delete, move, or archive operation.
I'll leave the PR for review. Afterward, we can work on preventing some actions from reloading the page when performed, as this is another performance issue.

@kroky
Copy link
Member

kroky commented Sep 30, 2024

#1252 looks good - just check if Tiki-master is OK with latest code - not sure about the paths of the new module import.

@mercihabam
Copy link
Member

#1252 looks good - just check if Tiki-master is OK with latest code - not sure about the paths of the new module import.

Tiki-master isn't OK because those modules are not included in the final site.js. But, this PR (#1264) should fix.

@kroky
Copy link
Member

kroky commented Oct 3, 2024

Alright, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants