2017-06-06 4 views
0

J'ai une minuterie sur ma page pendant 10 min. et lorsque le temps dépasse la page censée s'actualiser et supprimer les valeurs de session.window.location.reload ne fonctionne pas

Cela fonctionnait très bien mais soudainement il a cessé de fonctionner. Le temporisateur est bloqué à 0:01.

Il semble que lorsque location.reload() s'exécute, la page est bloquée. La barre d'état de l'explorateur continue d'afficher l'icône de chargement ... encore et encore.

Mon code est ci-dessous:

<script> 
        var counter = setInterval(timer, 1000); 

        function timer() { 
         count = count - 1; 

         // if time exceed then refresh the page. 
         if (count <= 0) { 
          location.reload(); 
         } 
         else 
         { 
          var timerSpan = document.getElementById("timerCountdown"); 

          if (count <= timerTurnToRed) { 
           //Make Red 
           timerSpan.className = "finalCountdown"; 
          } 

          // Calculate remaining minutes & seconds 
          var remainingMinutes = Math.floor(count/60) 

          // Check if it is negative 
          if (remainingMinutes < 0) 
           location.reload(); 

          var remainingSecs = count - (remainingMinutes * 60); 
          if (remainingSecs < 10) { 
           remainingSecs = "0" + remainingSecs.toString(); 
          } 

          timerSpan.innerHTML = remainingMinutes + ":" + remainingSecs; 
         } 
        } 
       </script> 
+0

Où est le code qui définit "compte"? Il pourrait être 0 après rechargement. –

+0

Vous n'avez pas fourni le code complet de votre problème ... –

+0

Juste une conjecture, mais peut-être que la minuterie continue à recharger encore et encore. Comme il le fait 'location.reload()' alors avant d'avoir rechargé la nouvelle page et d'avoir effacé l'ancienne page, il a de nouveau 'location.reload()', ce qui l'a empêché de recommencer le chargement et de recommencer ... . et plus. Essayez d'arrêter l'intervalle avec quelques vérifications, peut-être changer le test à 'if (count === 0)' –

Répondre

0

Ne pas aller là où est le problème, il fonctionne comme prévu. L'évaluateur de code StackOverflow empêchera le rechargement.

var count = 15; 
 
var timerTurnToRed = 10; 
 
var counter = setInterval(timer, 1000); 
 

 
        function timer() { 
 
         count--; 
 

 
         // if time exceed then refresh the page. 
 
         if (count <= 0) { 
 
          location.reload(); 
 
         } 
 
         else 
 
         { 
 
          var timerSpan = document.getElementById("timerCountdown"); 
 

 
          if (count <= timerTurnToRed) { 
 
           //Make Red 
 
           timerSpan.className = "finalCountdown"; 
 
          } 
 
          
 
          var remainingMinutes = Math.floor(count/60); 
 

 
          // Check if it is negative 
 
          if (remainingMinutes < 0) 
 
           location.reload(); 
 

 
          var remainingSecs = count - (remainingMinutes * 60); 
 
          if (remainingSecs < 10) { 
 
           remainingSecs = "0" + remainingSecs.toString(); 
 
          } 
 

 
          timerSpan.innerHTML = remainingMinutes + ":" + remainingSecs; 
 
         } 
 
        }
.finalCountdown {color: red;}
<div id="timerCountdown"></div>

+1

C'est pourquoi nous devinons le code pour définir 'count 'est le problème. –