En forçant un DOM actualiser dans Internet explorer après avoir javascript de manipulation du dom

Voici la situation. J'ai un peu de javascript qui ressemble à ceci:

function onSubmit() {
    doSomeStuff();
    someSpan.style.display="block";
    otherSpan.style.display="none";
    return doLongRunningOperation;
}

Quand je fais cette soumission d'un formulaire d'action, et de l'exécuter à partir d'un non le navigateur IE, il est rapidement permute les deux travées de la visibilité et de courir le long de l'opération javascript. Si je fais cela dans IE il ne fait pas le swap, jusqu'à ce que après onSubmit() retourne complètement.

Je peux forcer un dom redessiner en coller une boîte d'alerte de la sorte:

function onSubmit() {
    doSomeStuff();
    someSpan.style.display="block";
    otherSpan.style.display="none";
    alert("refresh forced");
    return doLongRunningOperation;
}

Aussi, ce qui est évident jquery refactoring n'affecte pas l'IE comportement:

function onSubmit() {
    doSomeStuff();
    $("#someSpan").show();
    $("#otherSpan").hide();
    return doLongRunningOperation;
}

Ce problème existe sur IE8 et IE6. Est-il de toute façon à force d'un retraçage des DOM dans ces navigateurs?

  • Tout d'abord, que faites-vous dans la longRunningOperation?
  • Avez-vous essayé de déplacer la visibilité basculement de sa propre fonction?
  • longRunningOperation est en train de faire de la validation du formulaire. La forme est importante dans un petit sous-ensemble de cas.