Frontend Developer
Performance and debugging questions
62 questions on Performance and debugging for frontend developers, easiest first.
Easy 10
- Inspecting an API responseeasy
- Invisible text while fonts loadeasy
- Smaller image fileseasy
- What useMemo is foreasy
- What useCallback returnseasy
- Finding which component is sloweasy
- Splitting off a heavy admin pageeasy
- Showing 5,000 contacts in React Nativeeasy
- Tool for finding leakseasy
- Detached DOM nodeseasy
Medium 30
- Debounce vs throttle for searchmedium
- position: sticky does not stickmedium
- Serving AVIF with a fallbackmedium
- Images that push content downmedium
- Order of async scriptsmedium
- Loading the hero image soonermedium
- A preloaded font downloaded twicemedium
- Why a big CSS file delays first paintmedium
- A print stylesheet and render blockingmedium
- will-change on everythingmedium
- A slow loop that resizes cardsmedium
- Using transition: allmedium
- Attaching data to DOM nodesmedium
- Loading a chart library on clickmedium
- Passive touch listenersmedium
- Expensive initial statemedium
- useMemo that recomputes every timemedium
- useCallback that changes nothingmedium
- A slow page from one hover statemedium
- Rendering 20,000 rowsmedium
- Where to split a bundle firstmedium
- A store hook that re-renders too oftenmedium
- What the React Compiler doesmedium
- A tab switch that freezes the pagemedium
- The memo compare functionmedium
- A big form that re-renders on each keymedium
- Leak through a closuremedium
- Timer survives the componentmedium
- Caching data per DOM elementmedium
- Removing many listeners at oncemedium
Hard 22
- Why React.memo did not helphard
- Ellipsis that never truncates in Flexboxhard
- Effect that fetches foreverhard
- Comparator that returns a booleanhard
- Detecting the end of a listhard
- A very long page that renders slowlyhard
- A hover shadow that drops frameshard
- Loading five font weightshard
- Closure holding a big arrayhard
- Progress bar that never moveshard
- ArrayBuffer after transferhard
- Relying on FinalizationRegistryhard
- Time with a concurrency limithard
- Breaking up a long taskhard
- A transition around typinghard
- A huge bundle from one helperhard
- Heavy work in useLayoutEffecthard
- Jumping to row 3,000 in a FlatListhard
- Animation stutters while data loadshard
- One slow field in a big formhard
- Estimating a leakhard
- Leak from a global listenerhard