[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выполнить функцию при безактивности
cyberside
Мне необходимо выполнить какую-либо функцию ели пользователь бездействовал n колво секунд. Тоесть необходимо определить сколько бездействует пользователь. Например он вышел с сайта и за ним нужно почистить в том случае если он не вернулся через, скажем 3600 секунд.
Подскажите с чего начать где можно подсмотреть и т.п.

Зарание спасибо.



Спустя 3 минуты, 27 секунд (13.03.2012 - 23:33) glock18 написал(а):
Цитата (cyberside @ 13.03.2012 - 20:30)
Мне необходимо выполнить какую-либо функцию ели пользователь бездействовал n колво секунд. Тоесть необходимо определить сколько бездействует пользователь. Например он вышел с сайта и за ним нужно почистить в том случае если он не вернулся через, скажем 3600 секунд.
Подскажите с чего начать где можно подсмотреть и т.п.

Зарание спасибо.

что понимаете под "бездействием": отсутствие запросов к серверу или js-ивентов?

Спустя 2 минуты, 38 секунд (13.03.2012 - 23:36) Игорь_Vasinsky написал(а):
а что подразумевается под бездействием?

переходы между страницами
клики мышки
дёрганье мышки?
набор с клавы?

в windows.onload грузишь функцию с таймером, который обнуляется при любом из этих действий. если не обнулился таймер - запускаешь свой алгоритм

Спустя 49 секунд (13.03.2012 - 23:37) Игорь_Vasinsky написал(а):
ух ты... как отражение в зеркале увидел laugh.gif

Спустя 1 минута, 49 секунд (13.03.2012 - 23:38) cyberside написал(а):
Ну на моем примере идет сессия которая следит за траекторией пользователя по сайту.
Тоесть скрипт передает страницу на которой сейчас пользователь, при каждом его переходе куда лиюбо, или же обновлении страницы, также передается время в формате time(), в время последнего действия.
В идеале былобы хорошо сравнить каким-либо способом настоящие time() с сессионным и выполнить функцию. Но я без понятия как это реализовать в случае полного бездействия пользователя, думал о cron, но я совсем безпонятия как он работает и с чем его едят...
Ну если прямо отвечать на твой вопрос то "Отсутсвие запросов к серверу".

Спустя 1 минута (13.03.2012 - 23:39) cyberside написал(а):
Игорь_Vasinsky, ну это все работает если пользователь находится на сайте... А в случае если он его покинул?

Спустя 2 минуты (13.03.2012 - 23:41) glock18 написал(а):
Цитата (cyberside @ 13.03.2012 - 20:38)
Ну на моем примере идет сессия которая следит за траекторией пользователя по сайту.
Тоесть скрипт передает страницу на которой сейчас пользователь, при каждом его переходе куда лиюбо, или же обновлении страницы, также передается время в формате time(), в время последнего действия.
В идеале былобы хорошо сравнить каким-либо способом настоящие time() с сессионным и выполнить функцию. Но я без понятия как это реализовать в случае полного бездействия пользователя, думал о cron, но я совсем безпонятия как он работает и с чем его едят...
Ну если прямо отвечать на твой вопрос то "Отсутсвие запросов к серверу".

ну, логично - запросов на сервер нет, значит апач курит в стороне. А следовательно, это, либо крон, либо демон (как вариант, тот же пых-скрипт). Выбирайте любое smile.gif

UPD: на мой взгляд, демон здесь более уместен ввиду специфики ситуации, но, разумеется, так как этот процесс не будет умирать месяцами, нужно в нем очищать всю память вручную обязательно, ну процессов грузить нужно поменьше - слипы секунд по 10 хотя б

UPD: а что за функцию выполнить хотите то?

Спустя 49 секунд (13.03.2012 - 23:42) Игорь_Vasinsky написал(а):
бездействие на лицо.

Спустя 12 минут, 33 секунды (13.03.2012 - 23:55) inpost написал(а):
Я надеюсь, что это не счётчик он-лайн, или кто в сети smile.gif

Спустя 12 минут, 48 секунд (14.03.2012 - 00:08) cyberside написал(а):
inpost, просто нужно удалять сессии за пользователями, когда их нету на сайте.
Кстати... А ведь с этого и онлайн склепать можно)) laugh.gif

Спустя 1 минута, 2 секунды (14.03.2012 - 00:09) inpost написал(а):
А чем тебе простая сессия не нравится? Нафига её в БД помещать?

Спустя 48 секунд (14.03.2012 - 00:09) cyberside написал(а):
Ну, как говорится сдедить за пользователями и собирать инфу где они чаще сидят...

Спустя 5 минут, 50 секунд (14.03.2012 - 00:15) cyberside написал(а):
Вот что-то такого рода нашел, но немогу разшифровать...
mysql_query("DELETE FROM sessions WHERE time<SUBTIME(NOW(),'0 0:15:0')");

В каком формате должно быть поле time?

Спустя 6 минут, 19 секунд (14.03.2012 - 00:21) inpost написал(а):
Почитай про INTERVAL. Там намного проще. NOW() - INTERVAL
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.