Автоопределение выхода из системы на вкладках браузера? - PullRequest
0 голосов
/ 10 сентября 2018

У меня открыто несколько вкладок веб-сайта в браузере.У меня вопрос, если я выйду из одного окна "Как другие окна обнаружат, что пользователь вышел из системы?"Я использую 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 () каждую секунду, чтобы проверить, вышел ли пользователь из системы или нет.Это правильный подход?

1 Ответ

0 голосов
/ 13 сентября 2018

Я думаю, что это идеальный вариант использования для WebSocket

WebSocket API - это передовая технология, которая позволяет открыть двусторонний интерактивный сеанс связи между пользователем браузер и сервер. С помощью этого API вы можете отправлять сообщения на сервер и получать управляемые событиями ответы без опроса сервера за ответ .

А вы используете инфраструктуру Django, я предлагаю вам прочитать эту статью:

https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django

Если вы не хотите или не можете использовать технологию WebSocket, то я думаю, что ваше решение неплохо для небольшого веб-сайта.

Более ленивый способ - оставить остальные вкладки нетронутыми, пока на сервер не будет сделан запрос. Затем сервер вернет ответ о том, что пользователь отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...