За последние 24 часа нас посетили 22005 программистов и 989 роботов. Сейчас ищут 685 программистов ...

Оффлайн счетчик, помогите

Тема в разделе "Решения, алгоритмы", создана пользователем Xakim197, 19 мар 2016.

  1. Xakim197

    Xakim197 Новичок

    С нами с:
    19 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    Есть одна переменная, она должна увеличиваться каждые 5 секунд на 1, и когда пользователь закрывает браузер, скрипт продолжает работать. Как это можно сделать?
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Xakim197, сделай на сервере. Запускай скрипт кроном.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    П.М.С.М. это ещё один случай когда не надо каждые N секунд/минут/лет увеличивать счетчик, достаточно посчитать сколько времени прошло с момента X. Время тикает и без крона. )))
    Когда создаешь новую страничку, вычисляешь
    Код (PHP):
    1. $n = time() - strtotime('2016-02-29 13:05'); // сколько прошло секунд с указанного времени      
    Результат тот же, как если бы твой счетчик кто-то увеличивал каждую секунду, но достигается гораздо проще.
    Можешь поделить $n на 5, если хочешь )

    А когда понадобится буквально показать в онлайн как тикает прямой или обратный отсчет — ставь какой-нибудь Javascript timer на страницу.
     
  4. Anhk

    Anhk Активный пользователь

    С нами с:
    13 дек 2015
    Сообщения:
    219
    Симпатии:
    11
    может я чего-то не понял, но тсу нужно, чтобы каждые 5 секунд переменная увел. на 1 единицу и после закрытия браузера, т.е. и после завершения сеанса браузер-сервер.
    кто же тогда будет вызывать скрипт, если без крона сделать?
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    ну закрылся сеанс. и? никто не запрещает продолжить выполнение пхп-скрипта.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    мляха буха, чувак
    берёшь дату, вычитаешь из "сейчас", делишь на пять, получаешь число.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    после закрытия браузера время продолжает идти. и в тот момент, когда вам понадобится значение счётчика, вы его получите. а пока оно не нужно и чёрт с ним. логично?

    Добавлено спустя 17 секунд:
    труднее всего объяснять очевидные вещи. :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    а если глаза закрыть?

    Добавлено спустя 1 минуту 13 секунд:
    это даже скорее скажем так "концепция". Для неё нужно добыть место в голове. Концепция заходит и остаётся. Чем больше концепций вошло - тем ширше мозх.
     
  9. Anhk

    Anhk Активный пользователь

    С нами с:
    13 дек 2015
    Сообщения:
    219
    Симпатии:
    11
    тьфу ты, понял.
    я почему-то подумал, что ему нужно каждое увеличение (за 5 сек) получать и что-то с ним, грубо говоря, делать.
    но при таком подходе скрипт не "продолжает" работать, это многоходовочка, при которой мы обходным путём получим эквивалентное увеличение, будто бы он реально всё это время работал, как счетчик на js'е
    хочу побольше инфы.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    концепция :D

    Добавлено спустя 19 секунд:
    чувствуешь, как мозги пухнут?
     
  11. Xakim197

    Xakim197 Новичок

    С нами с:
    19 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    Мне надо, чтоб когда пользователь обновлял страницу, там выводилось число, и когда он обновится через минуту, к примеру, выводиться 900, минутой после, когда пользователь обновился, вывело 912. Я вообще не представляю, как это сделать, думал, брать как-то время открытия страницы, добавлять в mysql, и при следующем посещении страницы, высчитывать, сколько там должно добавиться от последнего входа и снова запоминать время, но я думаю, что есть варианты проще, чем это.
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Варианты прозвучали. Сначала сделай что бы лишь заработало как надо, а потом можно перейти к оптимизации!
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    если число разное для разных посетителей, а не одно на сайт, то прост в куку клади дату чо
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А если одно на сайт, порпиши точку отсчета константой, а потом считай от даты, как сказано выше.