0

プロジェクト管理システムを開発しています。ユーザーの作業時間を追跡しようとしています。時間追跡ページにはタイマーが含まれており、ユーザーは作業を開始する前に追跡を開始します。完全に機能していますが、システムがシャットダウンまたはアイドル状態の場合、タイムトラッカーは停止しません。システム (ブラウザのウィンドウやタブではない) がアイドル状態かどうかを確認するにはどうすればよいですか?また、ブラウザのタブが閉じている場合に確認メッセージを表示したい.コードを使用しています

    $( [window, document] .on( 'beforeunload ', function () {
        //alert
    });

しかし、「beforeunload」は値を返すことができません.javascriptのbeforeunload関数で真または偽の値を返す方法

4

1 に答える 1

1

追跡システムはより安全な側ではないため、ウィンドウ/タブが閉じていることを検出することが最善の選択肢です.

セッションデータとして「時間」フラグを設定し、セッションがまだ「新規/特定の制限を超えていない」かどうかを確認して、ページロードごとにログイン (または機能) を維持します。

//on pageload
session_start();

$idletime=60;//after 60 seconds the user gets logged out

if (time()-$_SESSION['timestamp']>$idletime){
    session_destroy();
    session_unset();
}else{
    $_SESSION['timestamp']=time();
}

//on session creation
$_SESSION['timestamp']=time();

別のオプション:

<?php

/* set the cache limiter to 'private' */
session_cache_limiter('private');

$cache_limiter = session_cache_limiter();

/* set the cache expire to 30 minutes */
session_cache_expire(30);

$cache_expire = session_cache_expire();

/* start the session */
session_start();

echo "The cache limiter is now set to $cache_limiter<br />";
echo "The cached session pages expire after $cache_expire minutes";

?>

参照: session-cache-expire

于 2013-08-21T11:45:46.187 に答える