Comment forcer les mises à jour d'affichage en temps réel en javascript ?
P粉148434742
2023-09-04 17:44:30
<p>Comment puis-je obtenir le javascript pour mettre à jour ma page Web en temps réel ?
Il semble que mon navigateur Chrome effectue tout le travail de traitement dans les calculs requis, puis met à jour la page Web. Vous trouverez ci-dessous le fichier HTML de test le plus simple. Je préfère voir un comptage séquentiel (plutôt que de simplement passer à la valeur finale). Par quoi dois-je remplacer <code>display.innerHTML = i;</code> </p>
<p>J'espère que la réponse n'est pas de diviser mon calcul en plusieurs calculs en utilisant setInterval ou quelque chose comme ça. Bien sûr, l'interruption que cela crée permettra à l'affichage de se mettre à jour, mais je n'aime pas le gérer avec autant de détails... J'aimerais qu'il y ait une fonction d'affichage "bloqué" disponible afin que le comptage ici ne continue pas jusqu'à ce que le navigateur Rendu de mes mises à jour d'affichage (ou existe-t-il une commande "rafraîchir" comme celle fournie par C ?). Je peux utiliser la console développeur si nécessaire, mais ce n'est pas idéal non plus. </p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html>
<corps>
<p id="Affichage"></p>
<script>
const display = document.getElementById("Display");
pour (soit i = 0; i <= 3000000000; i++) {
si (i % 100000000 == 0) display.innerHTML = i;
</script>
</corps>
</html></pre></p>
requestAnimationFrame
CheminUtilisez requestAnimationFrame ou setTimeout lorsque vous quittez une boucle pour permettre la mise à jour de l'interface utilisateur, puis reprenez la boucle là où elle s'est arrêtée.
Méthode Web Worker
Mettez votre algorithme dans un fichier JS et un message sera publié lorsqu'il devra être mis à jour
Et dans votre code d'interface utilisateur.