Selon les commentaires de cette publication du blog , la technique suivante exécute une opération de manière asynchrone mais attend un repeint:
function nextTick(callback) { var img = new Image; img.onerror = callback; img.src = 'data:image/png,' + Math.random(); }
Alors que celui-ci n'attend pas de repeint:
var mc = new MessageChannel; function nextTick(callback) { mc.port1.onmessage = callback; mc.port2.postMessage(0); }
Comment puis-je vérifier cela, par programme, de manière à ce que les tests automatisés sur plusieurs plates-formes / navigateurs puissent vérifier?
Vous pouvez utiliser requestAnimationFrame
au lieu de la solution de contournement dans la publication du blog.
En savoir plus sur le blog de Paul Irish http://paulirish.com/2011/requestanimationframe-for-smart-animating/