1

誰かがこの問題で私を助けてくれることを願っています...

学生がログインしたときに読み込まれるページがあり、上部には学生が最後にログインした時間を表すラベルがあります...この日付はテーブルに保存されます

global.asaxの下の日付を今日の日付に更新するコードを使用してみました

void Application_End(object sender, EventArgs e)
{

}

しかし、そこでSQL接続を使用できないようです

ユーザーが終了してサイトを閉じたら、テーブルに保存されている日付を (todays.date) に変更するにはどうすればよいですか?

4

4 に答える 4

3

Application_Endこれには適切な場所ではありません。これは、ユーザーセッションだけでなく、アプリケーション全体がシャットダウンしたときに呼び出されます。

あなたが欲しいものに最も近いものはおそらくSession_Endです。ただし、これはユーザーのセッションの有効期限が切れた後にのみ発生することに注意してください。これは通常、ブラウザが閉じられてから約20分後です。

いいえ、残念ながら、ユーザーがブラウザウィンドウを閉じたことを確実に検出することはできません。JavaScriptをいじりたい場合は、ほとんどの場合に機能する可能性のあるいくつかの回避策があります。

于 2012-10-31T09:51:56.630 に答える
1

Session_End代わりに使用してくださいApplication_End

Application_Endアプリケーション固有であり、アプリケーション全体に共通であり、1回起動します。

Session_Endユーザー固有であるため、ユーザーのスコープごとに1回起動します。したがって、正しい方法はこの方法を使用することです。

これらのイベントの詳細については、こちらをご覧ください。

于 2012-10-31T09:50:49.843 に答える
0

認証の仕組み (Cookie、セッションベースなど) によっては、ユーザーが正常にログインした直後にこれを行う方が簡単な場合があります。

Session_End最後のログインを正確に測定する必要がある場合は、実際にサイトの使用を終了してからしばらくしてから発生する可能性があるため、この方法で行うのが理にかなっています。

を使用したい場合はSession_End、ユーザーがセッションにログインした時間を常に保存し、Session_Endイベントが発生したときにデータベースを更新できます。

于 2012-10-31T10:07:34.520 に答える
0

onbeforeunloadイベントを使用できます。

例えば。

    <script type="text/javascript">
        window.onbeforeunload = function () 
        {
            //do something
        }
    </script>

これは、例を含むサンプル ページです: onbeforeunload イベントのサンプル

于 2012-10-31T10:25:11.837 に答える