Javascript будет работать сверху вниз, если то, что вы имеете в этом, если оператор блокирует.Если это так, вы можете просто поместить код прямо под оператором if вне тайм-аута, и он будет работать нормально.Если он асинхронный, вы можете использовать обратный вызов, который запускается при завершении первой функции, чтобы запустить вторую функцию.
Пример, приведенный ниже, не очень эффективный способ выполнения действий, но он больше используется для иллюстрации того, что яЯ говорю выше.В рамках функции write()
вы можете выполнять вызов AJAX или ждать, пока пользователь щелкнет что-либо или что у вас есть.Интерпретатор переходит к следующей строке, раздел которой будет сразу записан, и в порядке блокировки.
JS
var write = function (v, cb) {
setTimeout(function() {
document.write(v);
cb && cb();
}, 1000);
}
if (true) {
write("I'm not blocking, blah<br/>", function() {
document.write("Running<br/>");
});
}
if (true) {
document.write("I'm blocking, blah<br/>");
}
document.write("Running<br/>");
Выход
I'm blocking, blah
Running
I'm not blocking, blah
Running
http://jsfiddle.net/robert/vvmyk/