複数のページがあるウェブサイトがあります。各ページには、ユーザーの進行状況を保存する「ドラフトとして保存」メソッドがあります。セッションのタイムアウトが40分で、セッションが期限切れになるたびにページが自動的に「ドラフトとして保存」を呼び出すようにするにはどうすればよいか考えていました(失われないように)
どうすればこのようなことを始められますか?
複数のページがあるウェブサイトがあります。各ページには、ユーザーの進行状況を保存する「ドラフトとして保存」メソッドがあります。セッションのタイムアウトが40分で、セッションが期限切れになるたびにページが自動的に「ドラフトとして保存」を呼び出すようにするにはどうすればよいか考えていました(失われないように)
どうすればこのようなことを始められますか?
次のことはできません。セッションはサーバー側で期限切れになり、ブラウザーにメッセージを送信できません(ユーザーがまだページを表示しているか、ブラウザーを閉じているかさえわかりません)。
クライアント側のタイムアウトを設定して、ページを(ドラフトとして)サーバーに保存することもできますが、これにはセッションを更新する効果があります。したがって、5〜10分ごとに自動的に「ドラフトとして保存」を実行するだけで、セッションが維持されます(さらに、実行された作業のドラフトコピーも)。
.Netでは、Session_End(object sender、EventArgs e)ルーチンのGlobal.asaxを介してこれを行うことができます。これを使用して、リソースリリース作業を行います。
セッションの有効期限が次のようになったら、global.asaxで関数を呼び出すことができます
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
If Not Session.Item("sessionid") Is Nothing Then
If Session.Item("sessionid").ToString = "1" Then
ClsUtilities.CustomerLogout()
ElseIf Session.Item("sessionid").ToString = "2" Then
ClsUtilities.Logout()
End If
End If
End Sub