Я читал много статей об однопоточной модели исполнения JavaScript, циклах событий и очереди событий.Общие сведения о модели исполнения и цикла событий
Однако одно не ясно. Я создал скрипку, чтобы проиллюстрировать мой вопрос: http://jsfiddle.net/yzpmf67f/
<button onClick="window.compute()">Do computation</button>
<button onClick="alert('doing')">Do something else</button>
window.compute = function compute() {
var result = 0;
for (var i = 0; i < 100000; i++) {
for (var j = 0; j < 100000; j++) {
result = i + j;
}
};
var textnode = document.createTextNode(result);
document.body.appendChild(textnode);
}
Если нажать на кнопку «Do вычисление» это займет некоторое время и заблокировать страницу. Но если вы нажмете кнопку «Сделать что-то еще», а страница все еще висит, она все равно будет добавлена в очередь и будет выполнена после завершения нашего вычисления.
Итак, если JS является однопоточным, который помещает события пользовательского интерфейса в очередь событий, пока мы вычисляем что-то еще?
Итак, где эта скрипка? :) –
извините, столкнулся с stackoverflow из-за отсутствия исходного кода – damluar