Problème de
reflow ça ^^
C’est quoi le reflow ? C’est une réorganisation des éléments visibles de la page
après une modification JavaScript. Le problème se situe au niveau du mot « après »…
Parce que le navigateur est une feignasse, il va essayer de regrouper les modifications
visibles pour faire le moins de reflows possibles. J’imagine que c’est ce qui se passe dans le cas présent : il a un attribut
src à changer deux fois, et il fait les deux en même temps. Et il est carrément gagnant car en fin de compte il n’a rien à faire…
Dans les frameworks on trouve des fonctions du genre
delay ou
defer. Le principe est toujours le même : on retarde le code JavaScript avec un
setTimeout pour « laisser respirer » le navigateur. Comme il n’a pas de code à traiter, il fait les reflows en attente.
Donc à moins que je raconte des conneries depuis le début, ceci devrait résoudre ton problème :
1 2 3 4 5 6 7
|
fonction_desactiver_le_bouton_validation();
// et là on fait une pause
window.setTimeout(function() {
fonction_du_transfert();
fonction_activer_le_bouton_validation();
}, 10); // tas 10ms pour faire ton reflow, feignasse |
Pour le second reflow, je connais pas le reste de ton code mais j’imagine qu’il n’y a pas besoin de refaire une pause. Sinon, tu sais comment faire…
Partager