したがって、「index.html」と「info.html」という2つのページがあるとします。 index.htmlのページには、ボタンとスパンがあります。ボタンを押すと、カウントダウンタイマーがそのスパンで開始します。タイマーがゼロになると何かが起こります。問題は、私がカウントダウンを開始すると、info.htmlページに行き、index.htmlに戻るとタイマーがリセットされるということです。もちろん、これはindex.htmlを離れるときにスクリプトがアンロードされることによって発生しますが、これを解決するにはどうすればよいですか?私がカウントダウンに50秒残っていて、index.htmlを離れると、info.htmlページに30秒滞在します。戻ってくると、20秒待ってください。 アイデアHTMLでページを変更するときにスクリプトを実行し続ける
-1
A
答えて
0
ローカルストレージに残っている時間を保存できます。ページが更新された場合、スクリプトは、ローカルストレージから値をロードして、新しい値でタイマーを開始します:
function nonStopTimer(cb, seconds) {
var KEY = 'nonStopTimer'
var secsRemaining = localStorage[KEY];
if (!secsRemaining) {
secsRemaining = seconds;
}
setTimeout(function() {
localStorage[KEY] = null;
cb();
}, secsRemaining * 1000);
setInterval(function() {
secsRemaining -= 1;
localStorage[KEY] = secsRemaining;
}, 1000);
}
+0
さて、これはうまく見える、ありがとう!私はそれを試してみましょう。 –
+0
問題がある場合は教えてください。 – nstoitsev
1
タイマー情報は、ローカルストレージまたはセッションストレージに保存してください(Web Storage参照)。だから、例えば、ページロードの
:
var countdownEndsAt = localStorage.getItem("countdownEndsAt");
if (countdownEndsAt) {
countdownEndsAt = +countdownEndsAt;
if (countdownEndsAt < Date.now() {
// It's already happened, decide what to do
}
}
if (!countdownEndsAt) { // Separate 'if' in case you decide to clear it in the "it's already happened" above
countdownEndsAt = Date.now() + 60000;
localStorage.setItem("countdownEndsAt", countdownEndsAt); // Gets converted to a string
}
countdownEndsAt
は今、タイマーがオフに行くべき時間値が含まれています。
関連する問題
- 1. 私のスクリプトを実行するときに私は続ける
- 2. 現在のhtmlページを変更せずにcgiスクリプトを実行しますか?
- 3. Angular2 - ページを変更するとコンポーネントが実行され続けます
- 4. Julia - スクリプトを実行してインタープリタを実行し続ける
- 5. PHPスクリプトを変更してPerlスクリプトとして実行する
- 6. 永続的なPHPスクリプトを実行し続けるには?
- 7. Pythonスクリプトを常にラズベリーパイで実行し続けるには?
- 8. 私のPiでスクリプトを実行して、SSHを閉じるときにスクリプトを実行し続けることはできますか?
- 9. スクリプトを実行しているページでxpathを見つける
- 10. テストスイートを実行しているときにGroovyスクリプトが実行され続ける
- 11. javascript関数を実行した後にhtmlページを変更する方法
- 12. ビルドコマンドの後にbashスクリプトを実行し続ける
- 13. レスポンスを送信してスクリプトを実行し続ける - PHP
- 14. bashスクリプトの実行中にユーザーを変更して、新しいユーザーでコマンドを実行し続けるにはどうすればよいですか?
- 15. anglejsで前のページに戻って変更を続ける
- 16. Pythonスクリプトはバックグラウンドで実行し続ける
- 17. ユーザーを切断している間、PHPスクリプトを実行し続けるには?
- 18. "set + e"で十分でないときにbashスクリプトを実行し続けるには?
- 19. txtファイルが変更されたときにpythonスクリプトを実行する
- 20. QNX6でEclipse実行スクリプトを変更するには?
- 21. Pythonスクリプトの実行間に永続変数を保持する
- 22. アプリをバックグラウンドで実行し続ける
- 23. バックグラウンドでアクティビティを実行し続ける
- 24. アプリをフォアグラウンドで実行し続ける
- 25. Weexをバックグラウンドで実行し続ける
- 26. 「オンザフライで」HTMLページを変更する
- 27. プロセスを実行し続けるには?
- 28. 最後に実行してから変更されたDSLスクリプトだけを実行するJenkinsのシードジョブ?
- 29. 文字列を渡し、htmlページからpythonスクリプトを実行
- 30. 日付を変更してコマンドを実行するWindowsスクリプト
がクッキーにタイマーチェックポイントを保存するか(バックグラウンドで非同期数学のための)共有webworkersを使用して –
いくつかのクッキーを作ります値はindex.htmlの( 'setInterval')を使って1秒ごとに増加し、他のページでも続きます。 – callback
タイマーが開始すると、ローカルクッキーに目標時間(ゼロになる)を保存します。各ページで、クッキーを読んで、そのターゲットにカウントダウンするタイマーを開始します。 (残りの秒*をクッキーに保存しないでください。または、ページがアンロードされて読み込まれるとタイマーがドリフトします。変更しない*ターゲット*を保存してください) – David