Skip to main content

Interactions · Performance

Throttle

Also called: Throttling, Throttled handler

When an event fires over and over, run it at a fixed interval, like at most once every 200ms. Used for high-frequency events like scrolling and dragging.

In detail

Events like scrolling, mouse movement, and dragging can fire dozens or hundreds of times per second. Running heavy calculations on every one makes the page lag. Throttling sets a minimum interval: no matter how many times the event fires, it runs at most once every 200ms. You still get continuous feedback, just not too often.

Good fits: updating a reading progress bar on scroll, deciding whether to show a "Back to top" button, calculating position live while dragging, and stopping users from clicking a button over and over.

The difference from Debounce: throttle runs several times on a steady beat during continuous activity, while debounce waits until the activity stops and then runs once. If something needs to change live while scrolling, use throttle; if you only need the result after typing ends, use debounce. Also, this isn't the same as rate limiting on AI APIs (which people sometimes also call throttling). Rate limiting is the server capping how many calls you can make.

Developer info
Term ID
interaction-throttle
DOM selectors
No DOM cues. This concept isn't detected directly on a page.
Priority
1 · when several match at the same level, the higher priority wins
Version
v1 · updated Sep 29, 2026