Есть ли что-то как «непосредственные события» в Javascript?
Является ли понятие / понятие "ближайшие события " что-то, что существует в реализациях Javascript?
ФонВ этомэтот ответ к вопросу "Гарантируется ли javascript однопоточным? " автор упоминает что-то, что он называетнепосредственные события, Такойнемедленное событие является функцией обратного вызова (то есть что-то вроде "изменить размер» окна браузераwindow.onresize = callbackfunc;
), который выполняется, в то время как другой код Javascript еще не "законченный"потому что для instace он заблокирован (т.е.alert("alert");
).
Позвольте мне уточнить на примере:
// (1) Setup a "immediate event" (a callback for "resize");
window.onresize = function(){ console.log("log resize"); };
// (2) Run some code which contains a blocking alert()
console.log("log A");
console.log("log B");
alert("alert");
console.log("log C");
(Как jsfiddlehttp://jsfiddle.net/rj25m/5/)
Выводы приведенного выше сценария для разных случаев / сценариев:
Случай 1 (изменение размера не происходит)
log A log B log C
Случай 2 (после изменения размера Windows)alert("alert");
log A log B log C log resize
Дело 3интересный случай (Windows изменяется во времяalert("alert");
неожиданно возникнуть)
log A log B log resize log C
ВНИМАНИЕ: Пожалуйста, соблюдайте (как указано также вответ упомянуто), что в некоторых системах изменение размера окна не так просто во время модального оповещения. Например, в MS Windows необходимо временно уменьшить оборот экрана, чтобы вызвать изменение размера окна. В других системах, в большинстве случаев Linux, хотя есть предупреждение, вы все равно можете изменить размер окна.
ЗАМЕЧАНИЕ 2: (Случай 3) вывод, который я смог воспроизвести только в Firefox (использовал версию 26.0). IE и Chrome вроде бы неслужба поддержки" те "ближайшие события " и кажется, что там было замечено событие изменения размера, но запланировано выполнение после завершения блока, который был заблокирован.alert("alert")
Случай 4 (как и Case3, но с Chrome / IE)
log A log B log C log resize
Я смущен поведением, наблюдаемым в сборке Firefox, и использованием термина "ближайшие события ", У меня есть сомнения, если что-то подобное действительно существует. Вот почему я спрашиваю здесь, я ожидаю, что кто-то знаком и может ответить со ссылкой на спецификации ECMAScript и или со ссылкой на спецификации реализаций. Глядя на MDN ссылку на актуальную идею "бежать до завершения " Я склонен думать, что поведение, описанноенепосредственные события ничего не нужно, ничего не названо и на самом деле ошибка Firefox. Есть некоторая репутация, что у Firefox есть некоторые проблемы сalert
так как они представили новое (вкладка модальное оповещение).
Я рад за понимание и открыт для ответов на комментарии