Запуск скрипта по событию закрытия браузера: это возможно?

...kruglov, ты имеешь в виду, что при обновлении - скажем -списка юзеров, в базе для этого юзера должна появляться точная дата обновления? - допустим.
...но вот юзер закрыл браузер и ушел, а дата последнего обновления им страницы осталась - я не врубаюсь, что с ней делать? с чем ёё - эту дату - сравнивать?
 
Sardonix
происходит оюновление фрейма обяв - работает фрейм, который в базу ничего не вводит, а только читает из нее...
И что мешает параллельно обновлять ему время последней активности?

-~{}~ 18.11.05 12:43:

Что делать, сравнивать с now()
Если больше, скажем, 5 минут - отрубаем
 
...люди, пожалста, не сердитесь на моё тугоумие - я не из вредности, я правда разобраться хочу...

-~{}~ 18.11.05 16:52:

...но для того, чтобы сравнить с NOW(), нужно, чтобы скрипт был кем-нибудь запущен - он сравнит для всех пользователей последнее значение обновления списка пользователей - это у нас будет меткой присутствия - и сравнит это значение с NOW()... ...а что делать, если этот пользователь единственный (скажем. последний оставшийся в чате) - кто запустит скрипт ?
 
> а что делать, если этот пользователь единственный (скажем. последний оставшийся в чате) - кто запустит скрипт ?
Ничего. Кого волнует, что у тебя в чате якобы кто-то есть, если никто эту информацию не просматривает?
 
...так ведь флаг-то в базе останется - что мне с ним делать!!!
... :( ...
 
Ничего. Да и вообще - кому он нафиг нужен, когда у тебя есть last_update?
 
Sardonix
Флаг останется до первого посетителя.

Но если очень хочется - cron
 
...типа, пусть будет, а когда любой пользователь залогится - он запустит скрипт, который проверит последнюю дату обновления окна пользователей с NOW() и подчистит все ненужные флаги?

-~{}~ 18.11.05 17:09:

...Боже, с каким трудом до меня всё доходит...
 
почему бы тебе вместо того чтоб занимать в базе место под флаг, занять этоже место под сессию.. и если сессия isset() тогда пользователь онлайн...
 
to neonet
какой умный человек! а ты подумал про ситуацию что допустип мою сессию ты не смогешь проверить на isset(и вообще затея г, если честно)?
 
zap
мне кажется, что все уже уходит по смыслу. все, что человеку надо это отключить не активных пользователей. разумное решение не ловить "факт закрытия броузера", а отключать по таймауту. Например через 15 минут не активности. для этого нафиг убираем все флаги. запоминаем last_update, и показываем только тех юзеров, у которых разница между этой датой и текущей меньше 15 минут (значит они сидят в чате).

Если челове не активен 15 минут - значит ему надо перелогинится и это уже его проблемы. Для особо извращенных можно дать возможность человеку управлять этим таймаутом. Но механизм останется тот же.

и нефиг извращаться ...
 
вообще я сделал по своему и считаю это правильно что не раз обсуждали!

сделал я так, если человек активен, значит он порождает какоето действие, действие фиксируется в сессии, сессия хранится в базе, в базе есть поле нечто похожее на last_time_stamp, в котором хранится время его последнего действия!

думаю есть смысл сделать что-то подобное
 
Сверху