ユーザーが自分のサイトから別のサイトに移動したり、ブラウザを閉じると、Djangoでセッションを閉じることができます。ユーザーが別のサイトを移動したとき、またはブラウザが終了したときにDjangoを閉じるセッション
答えて
質問とコメントの両方から、JSの助けを借りずにユーザーがサイトを終了したときに、セッションを「終了」したいようです。答えは、あなたが "近い"をどのように定義するかによって異なります。
根本的な問題は、HTTPがステートレスであることです。サーバーに入る各要求は、他の要求との関係なく、完全に独立した要求です。つまり、状態が存在しないことを意味します。状態は非常に便利なので、セッションを使って状態を追加するためにHTTPをハックします。アイデアは、ブラウザがサーバ上に格納されているいくつかの状態に何らかの識別子を送信し、サーバがその状態を取得してリクエストにいくつかのコンテキストを与えることを可能にすることです。キーは、ブラウザがそのデータを送信していることです。言い換えれば、ある時点のブラウザがリクエストの送信を停止すると(たとえば、ユーザーがタブを閉じるなど)、サーバーはそのことを決して知らないでしょう。したがって、セッションをサーバーから削除するように「クローズ」セッションを定義した場合、JSヘルプなしでは不可能です。
あなたが達成しようとしているのは、あなたがサイトを終了したときにユーザをログアウトさせることですが、これは部分的にDjangoでSESSION_EXPIRE_AT_BROWSER_CLOSE
の設定を使用して行うことができます。 Hereはそれに関する追加のドキュメントです。ここでのアイデアは、Djangoがセッションクッキーをブラウザに戻すと、ブラウザが閉じられたときにセッションクッキーが期限切れになることを示します。この場合、ブラウザが閉じられると、ブラウザ自体がセッションを無効にするので、ユーザは次の訪問時に新しいセッションを作成することになる。これは部分的な解決策です。なぜなら、セッションはサーバーに保存され、ブラウザが完全に閉じられているとしか動作しないと思います。古いセッションを蓄積するサーバの問題を軽減するため、Djangoは定期的に実行する管理コマンドclearsessions
を提供しています。
- 1. ブラウザまたはタブを閉じるとAsp.Netセッションが終了する
- 2. メインアプリが閉じたときにサービスが終了します
- 3. セッションが終了したときにjdbc接続オブジェクトを閉じる
- 4. NSOutputStreamが終了したときに接続を閉じる
- 5. スレッドが終了したときにフォームを閉じる
- 6. ユーザーがメインウィンドウを閉じたときにPowerPointプロセスが終了しない
- 7. ユーザーがウィンドウまたはブラウザを閉じるときのJqueryタスク
- 8. セッションが終了したときにモデルを起動する - Tensorflow
- 9. ブラウザが閉じられるとOmniauthセッションが終了する
- 10. ダイアログが終了したときにフォーカスを前方に移動
- 11. プロセスが終了したら、私は自発的に拡散セッションを閉じることができますか?
- 12. セッション終了時にユーザーをタイムアウトページに移動する方法、ユーザーがブラウザの戻るボタンをクリックした場合
- 13. PHP Javascript?ユーザーがページまたはブラウザを閉じたときに何かを
- 14. ユーザーがブラウザを閉じたときに、イベントを「ログアウト」
- 15. ユーザーがブラウザを閉じたときを知る方法?チャットアプリケーション
- 16. ブラウザが終了したらセッションを終了する方法
- 17. セッションが終了したときにスクリプトを実行する
- 18. セッションが終了したときにフォームを表示する
- 19. ブラウザウィンドウを閉じたときにcodeigniterセッションを終了する方法
- 20. ブラウザを閉じたときにセッションを閉じてインデックスページにリダイレクトする方法
- 21. アプリが終了したときを監視できますか?たとえば、ユーザーがマップ(または他のアプリ)を閉じると、「あなたが地図を閉じた」というポップアップを表示させることができます。
- 22. 作成したウィンドウを閉じるときにWindows Script Hostが終了する
- 23. ブラウザが閉じられる前にPHPセッションが終了する
- 24. セッションが終了したときにメールを送信
- 25. セッションが終了したときを知る方法
- 26. ejabberdのユーザーがオフラインになったときにグループを終了しました
- 27. データベーステーブルを更新し、ブラウザが終了したらセッションを終了します
- 28. ユーザーがポップオーバーをクリックしたときにブートストラップポップオーバーを閉じる
- 29. ユーザーが外にタップしたときにListViewを閉じる
- 30. ユーザーが終了したいときにbashスクリプトからSTDINを終了する
この回答を確認し、問題が解決するかどうかを確認してください。 http://stackoverflow.com/a/28755357 –
jqueryなしで可能ですか? –