Die von Ihnen angegebene Funktion zählt von 10 auf 1 herunter, mit einem 3-Sekunden-Intervall. Wenn Sie das direkt in der Chrome-Konsole ausführen und Ihre Seite in der Mitte aktualisieren, wird sie natürlich gelöscht, weil die Funktion im Kontext der aktuellen Seite ausgeführt wird, die Sie geladen haben.
Wenn Sie die Schleife zwischen Neuladevorgängen beibehalten möchten, wenn der Code innerhalb der Seite (nicht der Konsole) ausgeführt wird, können Sie den Status der Variablen bei der Ausführung des Codes beibehalten, z. im lokalen Speicher oder einem Cookie. Verwenden Sie beim Laden der Seite den gespeicherten Wert anstelle des Standardwerts.
Beispiel:
window.onload = function() {
var count = localStorage.getItem('count');
if (count == null) count = 10;
(function myLoop(i) {
setTimeout(function() {
localStorage.setItem('count', (i-1));
console.log(i);
if (--i) {
myLoop(i);
} else {
localStorage.removeItem('count');
}
}, 3000)
})(count);
}
prüfen diese Antwort: http://stackoverflow.com/questions/26380086/how-browser-execute-javascript-render-asynchronous/26381899#26381899 – KooiInc
, was Sie genau sind versuchen zu erreichen? scheint wie localStorage den Trick tun – mylee