За последние 24 часа нас посетили 21988 программистов и 1003 робота. Сейчас ищут 662 программиста ...

сколько времени пользователь провел на странице

Тема в разделе "PHP для профи", создана пользователем hack-dag, 23 авг 2017.

  1. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    всем привет.
    не могу понять как сделать чтоб при открытии определенной страницы, шла запись каждую секунду в БД. а при закрытии страницы запись останавливалась. И также если эту страницу снова открыть то запись продолжиться а не начнется заново.

    в общем нужен скрипт который считает время, которое пользователь провел на данной странице..
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    каждую секунду - маразм, зачем оно.
    Обычно механизмы показа пользователей он-лайн оперируют точностью в 5 минут, если свяыше 5 минут не было обновления времени то считается оффлайн....
    В вашем случае предлагаю при каждом открытии определенной страницы (или нескольких, или всех) при формировании страницы записывать текущее время, а так же вычислять разницу между старым и текущим временем и плюсовать в отдельное поле в таблицу длительности
     
    Fell-x27 и hack-dag нравится это.
  3. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    не совсем то что нужно.
    задача такая.
    студент открыл страницу для изучения материала. и если он провел на этой странице 2 секунды и закрыл ее, то преподаватель в панеле администратора должен увидеть запись сколько времени ученик изучал материал.
    а вдруг этот ученик не откроет больше этот материал и запись в бд вовсе не пойдет...
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    но например можно аяксом ежесекундно передавать данные, но представьте что будет с сервером
    - в минуту 60 запросов от одного пользователя, а если 10? 100? Только ради секунд
    Я думаю преподавателю достаточно будет и минут или самого факта что было посещение не было
     
    hack-dag нравится это.
  5. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    представляю. прекрасно понимаю. я уже людям все объяснил,но они за свое - им нужно знать точное время, которое провел пользователь изучая материал, вплоть до секунд
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    тогда ajax с таймером. НО это не гарантирует что пользователь не откроет страницу и не уйдет пить чай )
     
  7. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    Ыыы )))) 10 пользователей*60 сек=600 запросов в минуту. server has gone away будет результатом работы этого бреда
     
  8. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    что ж поделать. все равно не мой ж сервак хД)
     
  9. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    так претензии к тебе будут, почему не работает
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    для снижения нагрузки можно попробовать писать данные в локальное хранилище и при уходе или закрытии старницы отправлять накопленый результат. правда сомневаюсь что все уходы переходы можно будет отследить
     
  11. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Если уж делать говно, то предлагаю сразу е6aнуть миллисекунды. А то вдруг студент будет изучать материал не 2 секунды, а 1.892
     
    Motorinyan нравится это.
  12. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Студенты напишут скрипт, который будет говорить, что каждый студент читает все страницы одновременно в течении месяца бесконечно.
    Вот будет пичалька деспотам преподам. :D
     
  13. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    Боюсь, что преподы этого просто не узнают, потому что сервак тупо будет висеть все это время)))
     
  14. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    студенты нагуглят эту тему и организуют DoS без напряга. Надо просто открыть много вкладок в браузере нескольким людям)
     
  15. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Websockets ?
     
  16. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Чем помогут вебсокеты? Они что данные на сервер не будут передавать? Или реже?
     
  17. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    И что ? Это реально организовать даже на одном ядре.
    Тем что не нужно каждый раз передавать избыточную информацию. Постоянный коннект например ещё. Хоть по клику мышки отсылай.
     
  18. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Где организовать? На выделенном сервере? На недорогом хостинге тебя за такое попросят думаю уже на второй день, даже если хостинг будет справляться...

    Вообще организовать можно то все что угодно, только зачем глупости организовывать, мне не ясно.
     
  19. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    А то. Там что, 10 студентов учатся? Или сотня? Или таки больше? Не надо потакать идиотизму.
    Дада, конечно. Особенно на обычном хостинге, с ограничением в 10 запросов. Реально на вещи смотреть надо, а не теорией раскидываться, у них там 100% не дата-центр НАСА
     
  20. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Хватит это терпеть.
    Изучайте ограничения при оформлении услуги. Если таковых нет - разбирайтесь. Что значит попросят ?
    Поясняй за глупости.
    Я не вкурил, ты о чем ? Напруга не обозначена или что ?
    Что это блин за хостинги такие, алло, 2017 год, где вы такое говно находите или совсем все бомжи кругом ?
     
  21. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Голословность. Давай ссылки на недорогие хорошие хостинги с адекватной и быстрой техподдержкой и высоким аптаймом 99%+
    которые можно е6ать и в хвост и в гриву ежесекундными запросами в бд.

    Посмотрим хоть на эти чудеса и будем знать!
     
  22. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    DO, машина за 5 баксов выдержит и студентов и мамкиных дудосеров, если конечно делать не через жопу.
     
  23. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    голословность. не выдержит. 1000 юзеров одновременно по записи каждую секунду тупо бд рухнет и все
    Ох, ебатюшки, ромка, абромич?! Сколько лет! А, или это ты, билли? Короче, вас фиг поймешь, миллиардеров. А тут простые люди собрались. Которые не покупают выделенные сервера по 30-50 уёв в месяц, а берут простые хостинги за 3000 рублей в год. Так вот у них почти у всех ограничение на кол-во запросов к БД. 10-20 максимум. Вернись на землю, "миллиардеришко". И понтов поменьше, "миллиардеришко". 1000 одновременных записей в секунду положит нафиг твои понты напрочь или ты не выполнишь условий задания.
     
  24. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Во-первых, мир не заканчивается на mysql, тот же pgsql при правильной настройке очень даже выдержит, монга выдержит и не подавится, а in-memory db и не заметит, но это всё не суть. Потому, во-вторых, задача стоит учитывать вплоть до секунды, а не писать каждую секунду. Почувствуйте разницу, как говорится.

    Посему, мысленно сказав @Abyss спасибо за правильный ответ, мы берем ноду, вешаем её за nginx`ом, прямо в ней же храним данные приходящие к нам по сокетам и с определенной периодичностью результат сливаем в БД. На лицо сплошной профит и небольшой риск потерять период, на который в общем всем в итоге будет насрать.

    p.s. vps за 3000 в год таки тоже существуют и ограничивать вас будут лишь реальные лимиты по оп и процессору. В чем проблема то?
     
  25. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    теория, теория, теория... На практике, в условиях поставленной задачи вы никогда такого не реализуете. Если это только не институт, который основал какой-нибудь цукерберг и у котрого есть огромные мощности, несворованные деньги и т.д. есть теория, где это можно реализовать, и есть суровая реальность.
    Так именно в этом. В ограничениях.