Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » как проверить присутствует ли пользователь на сайте ? [RSS Feed]

#1 Окт. 18, 2010 20:02:40

zili
От:
Зарегистрирован: 2010-05-19
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

как проверить присутствует ли пользователь на сайте ?



Офлайн

#2 Окт. 18, 2010 20:10:14

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Офлайн

#3 Окт. 30, 2010 18:31:10

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Вообще это не возможно узнать в принципе только через какие то допущения.

Офлайн

#4 Ноя. 1, 2010 16:51:13

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Офлайн

#5 Ноя. 1, 2010 17:02:30

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Как один из очевидных вариантов вставить в базовый шаблон джаваскрипт, который при загрузке страницы и далее предположим каждые 30 секунд будет отсылать сигнал на сервер. И мы соответственно будет каждый раз обновлять DateTimeField завязанный на юзера, и если текущее время отличается от связанного с юзером временем более чем на 30 секунд, это означает что пользователя нет на сайте.
Из плюсов:
-легко делается без всяких дополнительных приложений
-быстро настраивается изменением всего одной временной константы
-работает если юзер держит страницу открытой, но не обновляет её

Из минусов:
-избыточная нагрузка на сервер
-требует у юзера включенного джаваскрипта



Офлайн

#6 Ноя. 1, 2010 17:15:39

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Согласен с romankrv, в данном случае он абсолютно прав, как бы хитро не реализовалась проверка, 100-й уверенности, что пользователь сейчас на сайте, не будет.

fth
Как один из очевидных вариантов вставить в базовый шаблон джаваскрипт, который при загрузке страницы и далее предположим каждые 30 секунд будет отсылать сигнал на сервер.
UseCase #1: Пользователь открыл страницу и пошел на 4 часа пивка попить…
В данном случае вы проверяете не активность пользователя, а то, открыта ли вкладка в браузере.

UseCase #2: У пользователя отвалился на 2 минуты интернет, или интернет нестабилен, он будет то появляться, то исчезать.

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



Офлайн

#7 Ноя. 1, 2010 20:09:04

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

regall
UseCase #1: Пользователь открыл страницу и пошел на 4 часа пивка попить…
В данном случае вы проверяете не активность пользователя, а то, открыта ли вкладка в браузере.
Ну как бы формально он на сайте, если я джаббер оставлю включённым и уйду на пару часов, то он всё-равно будет показывать что я в сети. (да, может отличаться в зависимости от клиента)
Да и в случае чего никто не мешает ограничить кол-во отправляемых сигналов с одной загруженной страницы.
regall
UseCase #2: У пользователя отвалился на 2 минуты интернет, или интернет нестабилен, он будет то появляться, то исчезать.
Опять же если рассматривать формально, то такая конструкция отрабатывает так как и надо, ибо при нестабильном инете, юзер как раз таки и будет то появляться, то исчезать с сайта. Да и если что можно легко подрегулировать изменив 30 секунд на эти 2 минуты.

Ясное дело, что точно сказать в данных условиях ничего нельзя. Да и тем более не утонченно для чего оно надо и как оно должно работать.



Офлайн

#8 Ноя. 1, 2010 20:14:37

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

fth
Ну как бы формально он на сайте, если я джаббер оставлю включённым и уйду на пару часов, то он всё-равно будет показывать что я в сети. (да, может отличаться в зависимости от клиента)
Не совсем уместный пример. С джаббером другая ситуация, там есть статусы, и если вы не будете производить действия (например, двигать мышкой, или стучать по клавиатуре), то статус утсановится соответствующий (преимущество толстого клиента), ну, либо вам будут наяривать, думая что вы там =).

fth
Опять же если рассматривать формально, то такая конструкция отрабатывает так как и надо, ибо при нестабильном инете, юзер как раз таки и будет то появляться, то исчезать с сайта.
Худо будет, если при “входе”/“выходе” пользователя выполняются некие действия, которые могут быть не такими уж простыми с точки зрения нагрузки.



Офлайн

#9 Ноя. 2, 2010 09:44:05

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

Может я не в теме, но на всякий случай вот ссылка http://djangosnippets.org/snippets/947/



подпись

Офлайн

#10 Ноя. 2, 2010 17:38:18

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

как проверить присутствует ли пользователь на сайте ?

не для этих вещей умные люди СУБД писали…
чем мой пример в 3 строки плох?

Офлайн

  • Начало
  • » Django
  • » как проверить присутствует ли пользователь на сайте ?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version