Frontmatter
| id | 8692 |
| title | Refactor Portal Canvas components to support requestAnimationFrame |
| state | Closed |
| labels | enhancementairefactoring |
| assignees | tobiu |
| createdAt | Jan 15, 2026, 10:56 PM |
| updatedAt | Jan 15, 2026, 11:03 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8692 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 15, 2026, 11:03 PM |
Refactor Portal Canvas components to support requestAnimationFrame
tobiu assigned to @tobiu on Jan 15, 2026, 11:03 PM

tobiu
Jan 15, 2026, 11:03 PM
Input from Gemini 3 Pro:
✦ I have refactored
HeaderCanvas.mjs,HomeCanvas.mjs, andTicketCanvas.mjsto use a module-levelhasRafconstant for feature detection. This ensures optimal performance in both SharedWorker (setTimeout) and DedicatedWorker (requestAnimationFrame) environments without per-frame lookup overhead. Verified and pushed todev.
tobiu closed this issue on Jan 15, 2026, 11:03 PM
Update
HeaderCanvas.mjs,HomeCanvas.mjs, andTicketCanvas.mjsto dynamically choose betweenrequestAnimationFrameandsetTimeoutfor the render loop. This ensures optimal performance in DedicatedWorkers (rAF) while maintaining compatibility with SharedWorkers (setTimeout).