我在浏览器中打开了一个网站的多个标签。我的问题是我是否从一个窗口注销:“其他窗口如何检测到该用户已注销?”我正在使用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()来检查用户是否注销。这是正确的方法吗?
答案 0 :(得分:0)
我认为这是WebSocket的完美用例
WebSocket API是一项先进的技术,可用于 打开用户之间的双向交互通信会话 浏览器和服务器。使用此API,您可以将消息发送到服务器 和接收事件驱动的响应,而不必轮询服务器 回复。
您正在使用Django框架,建议您阅读这篇文章:
https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django
如果您不想或不能使用WebSocket技术,那么我认为您的解决方案对于小型网站来说还不错。
一种更懒惰的方式可能是不更改其他选项卡,直到对服务器发出请求为止。然后,服务器将返回一个响应,告知用户已断开连接。