在浏览器标签中自动检测注销?

问题描述 投票:1回答:1

我在浏览器中打开了一个网站的多个标签。我的问题是,如果我从一个窗口注销“其他窗口如何检测用户已被注销?”我正在使用python / django进行开发

我使用的方法是:

function user_checking(){

         $.ajax({
            url: /check_user_login,
            type: 'POST',

            success: function (data) {

            if (data['user_status'] == 'not_loggedin'){
            location.reload(); 
            }

            },
            error: function (data) {
            },

         }); //ajax end
    }

    var validateSession = setInterval(user_checking, 1000);

我每秒发送user_checking()来检查用户是否已注销。这是正确的方法吗?

javascript django logout
1个回答
0
投票

我认为这是WebSocket的完美用例

WebSocket API是一种先进的技术,可以在用户的​​浏览器和服务器之间打开双向交互式通信会话。使用此API,您可以将消息发送到服务器并接收事件驱动的响应,而无需轮询服务器以进行回复。

你正在使用Django框架,我建议你阅读这篇文章:

https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django

如果您不想或不能使用WebSocket技术,那么我认为您的解决方案对于小型网站来说并不坏。

更懒惰的方法可能是让其他标签不受影响,直到向服务器发出请求为止。然后,服务器将返回一个响应,告知用户已断开连接。

© www.soinside.com 2019 - 2024. All rights reserved.