提供した機能は、3秒間隔で10から1までカウントダウンします。 Chrome Consoleで直接実行していて、途中でページを更新すると、読み込んだ現在のページのコンテキストでこの関数が実行されているため、もちろんそのページは強制終了されます。
コードがページ内(コンソールではなく)で実行されているときにリロードの間にループを維持する場合は、コードを実行しているときに変数の状態を維持できます。ローカルストレージまたはクッキーに保存されます。ページが読み込まれたら、既定値の代わりに格納された値を使用します。
例:
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);
}
この答えをチェックしてください:http://stackoverflow.com/questions/26380086/how-browser-execute-javascript-render-asynchronous/26381899#26381899 – KooiInc
正確にあなたが何をしています達成しようとしている? localStorageのようなトリックを行う必要があります – mylee