Ответ 1
Это не было, насколько я знаю, явно определенным в прошлом. Различные браузеры могут свободно выполнять заказы на события, но они подходят. Хотя большинство из них достаточно близки для всех практических целей, были и остаются некоторые случаи с нечетным краем, когда браузеры несколько отличаются (и, конечно же, многие другие случаи, когда некоторые браузеры вообще не могут отправлять определенные события).
Тем не менее, рекомендация HTML 5 делает попытку указать, как события будут поставлены в очередь и отправлены - цикл событий:
Для координации событий пользователь взаимодействие, скрипты, рендеринг, сети и т.д., пользовательские агенты должны использовать циклы событий, как описано в этот раздел.
Должен быть хотя бы один цикл событий за агента пользователя и не более одного события петля на единицу связанной контексты просмотра аналогичного происхождения.
Цикл событий имеет одну или несколько задач Очереди. Очередь задач - это упорядоченная список задач [...] Когда пользовательский агент ставит в очередь задачу, он должен добавить задание к одному из очереди задач соответствующего события петля. Все задачи от одного конкретный источник задачи всегда должен быть добавлен в ту же очередь задач, но задачи из разных источников быть помещены в разные очереди задач. [...]
[...] у пользовательского агента может быть одна очередь задач для событий мыши и ключа (пользователь источник задачи взаимодействия), а другой для всего остального. Пользовательский агент может затем дать клавиатуру и мышь предпочтение от других задач три четверти времени, сохраняя интерфейс реагирует, но не голодные другие очереди задач, и никогда обработка событий из одной задачи источник не в порядке. [...]
Обратите внимание, что последний бит: до реализации браузера зависит, какие события будут сгруппированы и обработаны по порядку, а также приоритет, заданный любому конкретному типу события. Поэтому нет оснований ожидать, что все браузеры будут отправлять все события в фиксированном порядке, сейчас или в будущем.