Как сделать юзеру статус оффлайн на сайте когда он ушел с него?

программирование php jQuery AJAX Unload

с пустого места этот вопрос не возник, с помощью функции

$(window).unload(function(){

$.post( 'do.php', { user: $name, status: 'off' } );

});

я делаю пост к файлу do.php, который в свою очередь обновляет status у юзера в базе данных, было "on", стало "off", все это довольно таки просто выглядит, но! Куда же без "но"? Оно не срабатывает!!! А если и срабатывает, то раз через трое в лучшем случае.

Вопрос как сделать более точное определение когда юзер закрыл сайт (окно/браузер)?

Примечание:
> Хах:) Одну картинку, сменить другой

это что за ответ?

Примечание:
> slo_nik

Там написано что это сработает через 20 мин, это не совсем то что мне надо, у меня на аякс понимаешь, как чат почти, когда юзер свалил, то все должны увидеть сразу что он свалил!

Примечание:
> неактивен долгое время

мне нужно сразу!!!!!!! Как-то же это делают в чатах!?
Ответы:
Хах:) Одну картинку, сменить другой
события закрытия окна очень ненадежны, а бы рекомендовал сделать авто логаут если пользователь неактивен долгое время
>>>мне нужно сразу!!!!!!! Как-то же это делают в чатах!?
а там время не активности очень маленькая просто, например чат обновляется каждые 1000 микро секунд, если пользователь не запрашивает чат в течении 2000 мсек, то он не активен
1 вариант
каждые 15 сек посылать запрос (короткий), обновлять в БД таймстамп
и где тайм стамп больше 20 - тереть их из онлайн
Вообще говоря, первое правило разработчика: никогда не доверяй данным пользователя.
Я это к тому, что яваскрипт выполняется на стороне пользователя, а значит от него можно ждать всего чего угодно. Как было сказано выше, события закрытия окна _очень_ ненадежны, поскольку далеко не каждый браузер их обрабатывает, плюс их можно отключить, плюс окно можно не закрывать, а сразу уйти куда-нибудь набрав адрес. Поэтому самым надежным методом будет только отслеживание по таймауту. Впрочем, никто не запрещает комбинировать методы.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.