0

サイトのヘッダーのスクリプトに setTimeout がある場合、ユーザーがページからページに移動しても、再起動せずに実行し続けることができます。これは、Cookie を使用して行うことができるものですか? 私が見ることができる例はありますか?

4

3 に答える 3

1

これには 2 つのオプションがあります。

  • URL 文字列に GET クエリを追加します。これは www.ex.com/index.html?time=300024 のようになります

すべてのアンカー タグのクリックをキャプチャし、それが自分のサイトを指している場合は、URL に ?time=${time} を追加します。次に、次のページで、タイマーを初期化するときに、次のページの location.search で時間を区切ります。ページと DOM が読み込まれる間に遅延が発生するため、このメソッドは正確な時間を保持しないことに注意してください。

javascript の location.search からパラメーターを取得する

  • ajax を使用して Web サイトのコンテンツをロードする

このようにして、サイトの内部部分へのリンクが実際に AJAX を使用して新しいコンテンツをクエリするように、サイトを完全に再設計します。つまり、ページ自体を変更することはなく、javascript タイムアウトがアンロードされることもありません。これは、最も推奨される方法ではありません。基本的な例を次に示します。

jQuery を使用したシンプルな AJAX Web サイト

于 2013-01-10T23:00:32.813 に答える
0

localStorage を使用して状態を保存します。

通常の setTimeout をセットアップします。開始時に、localStorage から必要な状態データをロードします。データを更新するたびに、永続化のためにデータを localStorage に保存する必要があります。

これを行う方法について具体的な詳細が必要な場合は、質問とともにコメントを残してください。回答を試みます。

于 2013-01-11T00:00:31.333 に答える
0

セッション Cookie を使用して、setTimeout コードを実行する時間を節約します。

各ページで:

  • Cookie に値があるかどうかを確認します。そうでない場合は、次のように設定Date.now() + delayValueします。ここで、delayValue はミリ秒単位で待機する時間です。
  • チェックcookieValue - Date.now()-- > 0 の場合は、それを setTimeout タイマー値として使用します。<= 0 の場合、タイマー関数は既に実行されているはずです
于 2013-01-11T00:24:35.833 に答える