Вот ситуация. У меня есть javascript, который выглядит так:
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
return doLongRunningOperation;
}
Когда я делаю это действие отправки формы и запускаю его из браузера не IE, он быстро меняет видимость двух интервалов и запускает длительную операцию javascript. Если я делаю это в IE, он не выполняет своп до тех пор, пока функция onSubmit() не вернется полностью.
Я могу заставить перерисовать dom, прикрепляя окно предупреждения так:
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
alert("refresh forced");
return doLongRunningOperation;
}
Кроме того, очевидный рефакторинг jquery не влияет на поведение IE:
function onSubmit() {
doSomeStuff();
$("#someSpan").show();
$("#otherSpan").hide();
return doLongRunningOperation;
}
Такое поведение существует в IE8 и IE6. Есть ли способ заставить перерисовать DOM в этих браузерах?