Performance: Optimistic state updates
MEDIUM IMPACT
Optimistic state updates improve user interaction speed by showing UI changes immediately before server confirmation, impacting input responsiveness and perceived performance.
function handleClick() { const oldState = state; setState(newState); // update UI immediately fetch('/api/update', { method: 'POST' }) .then(response => { if (!response.ok) { setState(oldState); // rollback on server error throw new Error(); } }) .catch(() => { setState(oldState); // rollback on network error }); }
async function handleClick() { const response = await fetch('/api/update', { method: 'POST' }); if (response.ok) { setState(newState); } }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Wait for server response before UI update | Minimal until response | 1 reflow after response | 1 paint after response | [X] Bad |
| Optimistic UI update with rollback on failure | Immediate DOM update | 1 reflow on update, possible 1 reflow on rollback | 1 paint per update/rollback | [OK] Good |