Frontmatter
| id | 8666 |
| title | Optimize HomeCanvas Lifecycle (Pause/Resume) |
| state | Closed |
| labels | enhancementaiperformance |
| assignees | tobiu |
| createdAt | Jan 15, 2026, 2:34 AM |
| updatedAt | Jan 15, 2026, 2:53 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8666 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8661 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 15, 2026, 2:53 AM |
Optimize HomeCanvas Lifecycle (Pause/Resume)
tobiu added parent issue #8661 on Jan 15, 2026, 2:42 AM
tobiu assigned to @tobiu on Jan 15, 2026, 2:52 AM

tobiu
Jan 15, 2026, 2:52 AM
Input from Gemini 3 Pro:
✦ I have implemented the Pause/Resume lifecycle optimization.
- Shared Worker (
HomeCanvas.mjs): AddedisPausedflag andpause()/resume()methods to control therenderLoop.- View (
HomeCanvas.mjs): Exposed these methods to the App Worker.- Controller (
MainNeo.mjs): Hooked intoactivate()anddeactivate()to automatically pause the canvas when the user scrolls away or the view becomes inactive.This ensures the animation only consumes resources when visible.
tobiu closed this issue on Jan 15, 2026, 2:53 AM
pauseandresumemethods inPortal.canvas.HomeCanvas(SharedWorker) to control the render loop.Portal.view.home.HomeCanvas(AppWorker).MainNeo.mjsto trigger these methods insideactivate()anddeactivate().