Одесса: 7°С (вода 9°С)
Киев: 0°С
Львов: 5°С

Тема: need help

Ответить в теме
Показано с 1 по 10 из 10
  1. Вверх #1

    По умолчанию need help

    Нужно организовать статистику по определенной странице - когда на неё зашли и сколько провели на ней времени (по сути - когда вышли). Данные хранятся в БД. Проблем с фиксацией времени, когда юзер зашел на страницу нет, но никак не могу понять, каким образом фиксировать выход из этой страницы. Пробовал через onunload и onbeforeunload отправлять запросы обработчику, который писал время выхода в БД, и все отлично работает, но вот в опере не фурычит (( Уже и хаки использовал, опера не реагирует на обновление страницы и на переход на другую страницу((( Страница состоит из 4 фреймов - шапка,футер,меню и контентная часть. Все ссылки меню загружаются в контентную часть, ссылки с шапки и футера загружаются в текущее окно... Есть у кого-нибудь идеи по реализации такой статистики иными методами?


  2. Вверх #2
    Постоялец форума
    Пол
    Мужской
    Сообщений
    1,312
    Репутация
    331
    каким образом фиксировать выход из этой страницы
    ну самый простой способ это что то вроде: когда истекло время ожидания то считаем что юзер отключился от страницы...
    а лучше заюзать механизм сессий... юзер отвалился, сессия дестрой... при дестрои -1 к онлайн юзерам на сайте...

    p.s. юзайте google analytics api и не парьте себе мозги

  3. Вверх #3
    Цитата Сообщение от _jack_ Посмотреть сообщение
    p.s. юзайте google analytics api и не парьте себе мозги
    Суть задачи - кабинет админа, там раздел статистика и в нем вся эта инфа должна отображаться...Этот кабинет находится на сайте, по сути модуль админпанели, поэтому google analytics api уже отпадает...
    по поводу сессий - спасибо, попробую что-то смастерить на сессиях...

  4. Вверх #4
    Постоялец форума Аватар для Grizli
    Пол
    Мужской
    Сообщений
    1,251
    Репутация
    285
    Аякс + обращение к серверу скажем раз в 30 сек.
    В админке не так много пользователей, что бы беспокоится о лишних запросах

  5. Вверх #5
    Вы не поняли, в админке эта вся информация выводится, а контроль ведется с определенной страницы - кабинета пользователя...т.е. мне нужно фиксировать id пользователя, время захода в кабинет и время выхода(закрытия браузера, вкладки, переход по другой ссылке и т.п., т.е. любое действие, которое приведет к выходу из кабинета)...а пользователей будет более 100 человек одновременно, может даже и более 200....я тоже думал за этот вариант, но эта запись статистики по такому методу в итоге превратится в дос атаку на сервер )))

  6. Вверх #6
    Постоялец форума Аватар для Grizli
    Пол
    Мужской
    Сообщений
    1,251
    Репутация
    285
    Цитата Сообщение от ®odman-9 Посмотреть сообщение
    Вы не поняли, в админке эта вся информация выводится, а контроль ведется с определенной страницы - кабинета пользователя...т.е. мне нужно фиксировать id пользователя, время захода в кабинет и время выхода(закрытия браузера, вкладки, переход по другой ссылке и т.п., т.е. любое действие, которое приведет к выходу из кабинета)...а пользователей будет более 100 человек одновременно, может даже и более 200....я тоже думал за этот вариант, но эта запись статистики по такому методу в итоге превратится в дос атаку на сервер )))
    Анлоад не будет работать во всех браузерах. Если делать через сессии то время пребывания на сайте вы получите в среднем с точностью ВремяЖизниСессии/2

  7. Вверх #7
    Поигрался с сессиями, тоже не подходит(возможно что-то не так делаю), т.к. после того как закрыл и ещё раз открыл браузер, та же сессия сохраняется. Нужно определять действие, которое повлечет за собой дестрой сессии. Выход из кабинета через ссылку "выход" - естественно убьет сессию, но не все же такие правильные. Меня интересует не пребывание на сайте, а пребывание на определенной странице. Или нужно подымать сессию именно для этой страницы? Как уже говорил - идеальный вариант - $(window).unload(function(){...});, но опера на него не реагирует при 1.рефреше, 2.переходе на другую ссылку,которая загружается вместо кабинета, 3.закрытии окна либо вкладки
    Выше указанный код нужно засунуть в $(document).ready(), чтобы не было запуска функции при загрузке страницы. Вот такая вот была реализация, но все испортила г*** опера(
    p.s. Работает везде, кроме оперы, я дополнительно хак прописывал

  8. Вверх #8
    Постоялец форума Аватар для Grizli
    Пол
    Мужской
    Сообщений
    1,251
    Репутация
    285
    Угу, про анлоад уже поняли.

    Вы кстати сильно ошибаетесь по поводу загрузки сервера запросами.
    К примеру у вас 1000 человек. Если сохраняете состояние раз в минуту, у вас добавится в среднем 15-17 запросов в секунду. Раз в полминуты 34. До доса далеко

  9. Вверх #9
    Спасибо! Может, действительно тогда стоит сделать по таймауту, раз не все так страшно, ещё проконсультируюсь. Спасибо за помощь!

  10. Вверх #10
    Цитата Сообщение от ®odman-9 Посмотреть сообщение
    Спасибо! Может, действительно тогда стоит сделать по таймауту, раз не все так страшно, ещё проконсультируюсь. Спасибо за помощь!
    Ну обычно по таймауту и делают. Так почти на всех форумах статистику собирают. Хотя видел и с аяксовской подгрузкой.
    Как по мне, так статистика по таймауту хоть и менее точная, но зато более простая и меньше нагружает сервер. А вот аяксовские прогрузки даже немного раздражают.


Ответить в теме

Похожие темы

  1. Need help. Забилась мойка
    от Mash в разделе Домохозяйство
    Ответов: 25
    Последнее сообщение: 08.02.2015, 13:58
  2. Ben, I need help: оборудование для домашней студии
    от mikhail007 в разделе Музыка :: для исполнителей
    Ответов: 24
    Последнее сообщение: 03.08.2007, 19:54
  3. Router-Need help!
    от Badboyskiller в разделе Интернет
    Ответов: 1
    Последнее сообщение: 16.07.2007, 13:07
  4. Java, Struts, Custom tags... Need Help
    от shipr в разделе Программирование
    Ответов: 8
    Последнее сообщение: 29.12.2006, 14:20

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения