Skip to content
mediummid1 min read #frontend #performance

What causes long tasks on the main thread? ​

Answer ​

Large JavaScript parsing or execution, expensive rendering, synchronous event handlers, and third-party scripts can block the main thread for more than 50 ms. Split, defer, or move non-UI computation off the critical path.

Context ​

Web performance is measured at the user level. Protect the critical rendering path, reduce main-thread work, and validate improvements against field data rather than bundle size alone.

Example ​

html
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />
<img src="/hero.webp" width="1200" height="675" alt="Product dashboard" />

Preloading the verified LCP image and reserving its dimensions can improve loading and prevent layout shift.

Practical considerations ​

  1. Choose the approach from the requirement and constraints, not from habit.
  2. Include validation, error handling, and cleanup where the boundary requires them.
  3. Verify the observable result with focused tests or measurement.

Follow-up prompts ​

  • What failure mode would you expect if this were implemented incorrectly?
  • How would you test this behaviour?
  • What changes when the feature must scale to a larger application or team?

In practice ​

For this medium-level topic, make assumptions explicit, choose the smallest safe implementation, and verify the behavior at the relevant boundary.