Ваша страница доставляется с сервера в клиентский браузер, где-то там, в Интернете. Браузер нарисовал страницу на экране, и кто-то - или какая-то вещь - смотрит на нее. Это игра ожидания. Глаза смещаются взад и вперед, просматривая те или иные детали быстрыми прыжками, время от времени метаясь в сторону от экрана, чтобы исследовать отвлекающие факторы в окружающей среде. Часы тикают. Страница светится мягко, пассивно, так как пользователь неактивно парит, рука свободно накинута на мышь, шея согнута вниз и глаза все более и более сосредоточены на том, что может предложить ваша страница.
Внезапно, без какого-либо предупреждения, курсор начинает двигаться, когда рука мыши слегка напрягается и начинает подталкивать маленький пластиковый удар по шероховатой поверхности стола. По мере движения мыши ее суррогат на экране движется в тесной имитации, выпасая интересные картинки и остроумные замечания в содержании вашей страницы. В конце концов решение принимается, движение останавливается, мышца или два слегка сокращаются, и кнопка мыши нажимается настойчивым пальцем. Микропереключатель в мыши запускает электронный импульс, и вдруг браузер узнает о том, что произошло: щелчок мыши.
При этом все, что делал пользователь, глядя на страницу, происходило совершенно непредсказуемо для браузера, для любого клиентского кода на вашей веб-странице, для всего, что находится на ваших серверах. Не было заметного «времени ожидания» между человеческими действиями. Следовательно, действия, передаваемые оборудованием, подключенным к компьютеру пользователя, произошли , когда они произошли , а не в соответствии с предсказуемыми часами, то есть они произошли асинхронно .