From 37d3a8509691e85b5b639c924d2d27d4c8a857b5 Mon Sep 17 00:00:00 2001 From: Parv Bansal <231238266+parvbansal11@users.noreply.github.com> Date: Wed, 5 Aug 2026 01:28:21 +0530 Subject: [PATCH] perf: split mobile field startup work --- field.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/field.js b/field.js index ec97faa..d4e296c 100644 --- a/field.js +++ b/field.js @@ -632,9 +632,15 @@ /* --------------------------------------------------------- observe --- */ readPalette(); - resize(); - - if (reduced.matches) settle(); else start(); + const initialize = () => { + resize(); + if (reduced.matches) settle(); else start(); + }; + // Keep script evaluation and canvas construction in separate tasks on + // coarse-pointer devices. The field appears on the next paint while the + // foreground remains responsive during mobile startup. + if (coarseField) requestAnimationFrame(initialize); + else initialize(); let resizeTimer = 0; let lastW = window.innerWidth;