За последние 24 часа нас посетили 22753 программиста и 1217 роботов. Сейчас ищет 801 программист ...

Как заставить работать скрипт в фоновом режиме в моб. браузере?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Redux, 10 янв 2020.

  1. Redux

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

    С нами с:
    25 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Есть скрипт, который перезагружает страницу через рандомное время.
    Использую для этого следующие строки кода:
    Код (Text):
    1. <? header('HTTP/1.1 200 OK'); header('Refresh:'.$refresh_time.'; URL=/index.php'); ?>
    2. <meta http-equiv="refresh" content="<?=$refresh_time?>" />
    3. <script>setTimeout(function(){location = ''},<?=$refresh_time?> * 1000)</script>
    Если на ноуте все работает без ошибок, то на телефоне как только экран гаснет, либо я выхожу из браузера, код перестает работать. Как заставить его работать в фоновом режиме и до тех пор, пока не будет закрыта вкладка браузера?
    Заранее спасибо!
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    у тебя будет проблема с перезагрузкой, первое:

    header отправляет браузеру команду ( перезагрузку )
    браузер снова трогает/запускает твой скрипт.

    Но ты же при первом starting php браузер вырубил.


    Все. Теперь у тебя есть проблема которую должен решить с браузером.
    --- Добавлено ---
    не код перестает, а браузер. Точнее система android/хняДругая переходит в ожидание (ПАУЗА) приложений.
    --- Добавлено ---
    а теперь по говнокоду:
    PHP:
    1. <?php
    2. header ( 'HTTP/1.1 200 OK' );
    3. header ( 'Refresh:'.$refresh_time.'; URL=/index.php' );
    4. ?>
    5. <meta http-equiv="refresh" content="<?=$refresh_time?>" />
    6. <script>
    7.     setTimeout ( function()
    8.     {
    9.         location = ''
    10.     }, <?=$refresh_time?> * 1000 )
    11. </script>
    прокомментируй каждую строчку..
     
  3. Redux

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

    С нами с:
    25 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Может можно тогда написать доп. скрипт, напр. на JS, который бы периодически "пинал" браузер, чтобы система думала, что приложение все еще работает?
    --- Добавлено ---
    Я уже все убрал, кроме JS)
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    короче
    PHP:
    1. system ( 'php daemon.php' );
    --- Добавлено ---
    пинай настройки андройда в энергосбережении "никогда не засыпать"
     
  5. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Может быть и не надо обновлять страницу, когда на неё никто не смотрит?
    --- Добавлено ---
    Я бы переформулировал условие так:
    надо чтобы страница, которую видит пользователь, была не старше Х секунд.
    Решение: meta refresh в секции head страницы. Без скриптов. Зачем ты соревнуешься сам с собой?
    --- Добавлено ---
    Ещё надо учесть случай, когда браузер или прокси решает, что страница не обновлялась и берёт содержимое из внутреннего кеша. Это решается через выдачу заголовков expire или через добавление случайного параметра в адрес.
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    @artoodetoo, там JS дублирует Refresh. Это норм. Не норм., что ТС использует это не по назначению.

    @Redux, какой скрипт? Пиши на JS без перезагрузки страницы. Если нужно дергать сервер – AJAX.
     
  8. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    дублировать это норм? ну и ну!
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    @artoodetoo, Web несовершенен, приходится изгаляться :D
    --- Добавлено ---
    P.S. И setTimeout, и Refresh «недостандартизированы». Плюс JS может быть откл.
    --- Добавлено ---
    P.P.S. Оно еще дублируется ручником «Если через N мин./сек. не произойдет автопереход, щелкните по ссылке».
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    об js и речи не должно идти
     
  11. Redux

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

    С нами с:
    25 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Забыл наверно добавить, что этот скрипт с перезагрузкой страницы нужен для своих целей. То есть этот код выполняется только мной, другим пользователям он не доступен)