Internally, the browsers are event-driven. Most actions occur asynchronously and create an event which is appended to the queue.
They are taken from the queue and processed when the time permits. For example:
- A script has finished loading.
- Keypress, mousemove.
- The window is resized.
Many events are integrated with JavaScript and many events are strictly internal.