• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ブラウザの「戻る」を押しても有効なカウントダウン)

ブラウザの「戻る」でも有効なカウントダウン|PHPで取得した時間を使ってリアルタイムに秒が減っていくプログラム

このQ&Aのポイント
  • PHPで取得した時間を使ってリアルタイムにカウントダウンするプログラムについて質問です。
  • ページを移動した後、ブラウザの「戻る」でページに戻ってきた際に、正しい秒数を表示し直す方法を教えてください。
  • また、カウントダウンが0秒を切った場合、ページを自動的にリロードする方法も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.2

クッキーあるいはセッション使ってはいかがですか? クッキーの場合  開始ミリ秒をクッキーに保存しておく。 セッションの場合、  1、開始時に非同期でサーバにカウントダウン開始の合図を送る。  2、サーバ側、セッションにカウントダウン開始時の時刻をセッションに保存(更新ボタン連打に対応する必要有)  1の前に、カウントダウンが行われているかをサーバに確認する処理が必要ですね。

noname#125049
質問者

補足

ご回答ありがとうございます。 クッキーに保存、これは開始ミリ秒を基準に時間を取得しているから、ページを遷移しても 狂わない、という事でしょうか?であれば是非その方法で運用してみたいです。

その他の回答 (3)

  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.4

補足ありがとうございます。 推察の通りです。 実際にcookieでやるとなると、cookieで削除された時の事や改竄された時の事を考える必要がある為、実際にはsession等の中に開始ミリ秒を入れ、その時刻からの基準で行うのが一般的だと思います。

noname#125049
質問者

お礼

お礼が遅くなり申し訳ありません。 sessionの仕方を学んで、本件無事解決致しました。 皆さんご協力ありがとうございました。

回答No.3

<div id="countdown">time</div> <script type="text/javascript"> var count = parseInt( location.hash.substring(1) ) || 45;//45をdate('s'); var e = document.getElementById( 'countdown' ); window.onbeforeunload = function ( ) { location.hash = count + '' }; setInterval( function( ) {  e.innerHTML = count+'';  if( !( count -= 1 ) ) {    ;/*どこかへ*/  } }, 1000); </script> とぶとり、あとをのこして・・ ごみかなぁ~

noname#125049
質問者

補足

ご回答ありがとうございます。 こちら、使ってみたのですが、当初の問題と一緒で、何もしなければ きちんと指定通りにリロードされますが、一度ページを遷移するとカウントダウンは 止まってしまい、しかもリロードが掛かると、戻った時の残り秒からのカウントダウンが スタートし、例えば残り1秒の時にページを遷移して、何秒か経って戻ると 1→リロード→1→リロード・・・とループしてしまいました…。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

ページを遷移してもカウントダウンが消えないようにすればいいのよ。 たとえば別ウィンドウで表示しておいて。 そうすればどんなにページ遷移しようと カウントダウンし続けるでしょ?

noname#125049
質問者

補足

説明が足らず申し訳ありません。 今回は新規ウインドウ以外の方法でお願い致します。

関連するQ&A