-1

私はこの機能を Jquery/javascript に組み込み、セッションがタイムアウトしようとしているときにユーザーに通知します。次に、それを延長するオプションが与えられます。選択しない場合、ポップアップは自動的に閉じられ、ブラウザーはログイン ページにリダイレクトされます。しばらくの間、それは完全にうまくいきました。しかし、今では、コンピューターでアクティブな場合にのみ正しく機能することに気付きました。コンピューターが 1 日中放置されている場合、ユーザーがコンピューターのロックを解除して再度ログインするまで、ポップアップはカウントダウンを開始しません。

コンピュータが長時間放置されると、javascript の実行が停止するというこの動作を知っている人はいますか?

更新: タブがスリープ状態にならないようにする方法はありますか? これがないと、ブラウザーは適切なタイミングでリダイレクトできません。

4

2 に答える 2

1

setTimeoutタブがアクティブな場合にのみ機能します。一部のブラウザでは、タブを変更してもカウントが停止します。そのため、コンピューターを使用している場合だけでなく、特定のページを使用していない場合も機能しない可能性があります。また、マルチタスク機能を備えたモバイル デバイスでは、タブのことを忘れて、アプリケーションが一時停止モードになることがよくあります。この質問を見てください。コード例を使用して、Luka と同じソリューションを提供しています。

Chromeでタブが非アクティブなときにsetIntervalも機能させるにはどうすればよいですか?

経過時間について 2 つのチェックを行う必要がある場合があります。1 つはポップアップを表示する必要があるかどうかを確認するため、もう 1 つはポップアップを閉じるためです。別のカウントダウンではなく、経過した合計時間を使用します。

于 2012-06-19T13:33:26.267 に答える
0

ページがロードされたときに現在の時間をログに記録し、10 秒ごとに関数を呼び出して、経過時間が x を超えているかどうかを確認することをお勧めします。問題が発生する理由は、デフォルトのタイムアウト関数がカウントダウンするだけだからです。ページがレンダリングされている間。

于 2012-06-19T13:17:32.900 に答える