[Bug]: Schedule tab becomes unresponsive with large number of events
Is there an existing issue for this?
- [x] I have searched the existing issues
What happened?
What happened? The Schedule tab in the Cronicle web interface becomes completely unresponsive when there are a large number of events (I have 40,000+) The browser hangs for 20+ minutes trying to load all events at once, eventually timing out or crashing
The Schedule tab should load quickly and display events with pagination, similar to other enterprise scheduling tools.
Expected behavior: The Schedule tab should load quickly and display events with pagination, similar to other enterprise scheduling tools.
Actual behavior: The Schedule tab attempts to load all 40,000+ events simultaneously in the browser, causing:
- 20+ minute load times
- Browser freezing/unresponsiveness
- 63-70MB data transfer per page load
- Potential browser crashes
This issue was predicted by the original developer in issue #71 where @jhuckaby stated: "The 'Schedule' tab in the UI has no pagination, and instead lists every event... With 30,000+ events, this page would probably lag the browser terribly, crash it, or at the least burn up the user's CPU."
Root cause: The Schedule tab JavaScript code loads all events without pagination:
this.events = [];
for (var idx = 0, len = app.schedule.length; idx < len; idx++) {
var item = app.schedule[idx];
this.events.push( copy_object(item) );
}
Suggested solution: Implement pagination in the Schedule tab to display 100-500 events per page instead of loading all events simultaneously. This would make the interface usable for production environments with thousands of events.
Reference: This issue was anticipated in #71 where scalability concerns were discussed for high-volume use cases.
Operating System
Ubuntu 22.04 LTS
Node.js Version
v18.x (will confirm exact version if needed)
Cronicle Version
0.9.76
Server Setup
Single Server
Storage Setup
Local Filesystem
Relevant log output
Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Fixed in v2, coming out later this year (2025).