Обновление php кода без обновления страницы

Тема в разделе "PHP", создана пользователем vave, 13 апр 2020.

XEvil 4.0 Релиз Состоялся!
Модераторы: latteo
  1. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    461
    Симпатии:
    16
    Дорогие друзья!
    Подскажите, как решить мой вопрос:
    На сайте прописано допустим
    $value = "1";

    Как можно сделать так, что бы без обновления страницы клиентом, у него заменилось содержание value на "2".

    С HTML я знаю это решается с помощью JS, а вот как быть с PHP?
    Может есть какая-то функция, которая циклически обновляет код, каждую секунду например.
    Или может есть возможность задать дату и время, когда $value = "1"; замениться на $value = "2";

    В общем даже близко не представляю как это реализовать.
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    1.031
    Симпатии:
    280
    Есть подозрение, что не совсем корректный вопрос.

    В браузере уже нет понятия php. Php отработал на сервере и выдал html код. Т.е. в браузере клиента есть только понятия html и js.

    Если стоит задача: значение $value увеличить на +1, то перезагрузку страницы делаете с помощью js. Значение $value храните в get параметре или в куки или сессии или в базе. Все зависит от алгоритма. При обновлении страницы через php инкрементируете это значение и выдаете новые данные.

    Другая альтернатива - можно генерировать php код на лету и потом его выполнять, например через eval(). Но опять же это делается на стороне сервера, а не клиента.
     
  3. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    461
    Симпатии:
    16
    Спасибо за ответ!

    Понимаю что на стороне сервера.
    Нужно так: я на сервере изменил значение, и оно обновилось у клиента в браузере, без видимой перезагрузки страницы.

    А можно об этом способе по подробнее?
     
    Последнее редактирование модератором: 13 апр 2020
  4. funnywheel

    funnywheel WordPress developer

    Регистр.:
    6 авг 2010
    Сообщения:
    257
    Симпатии:
    211
    Если вы на сервере, например в БД, меняете значение - и хотите, чтобы это стало триггером для обновления контента в браузере - вам нужны сокеты или SSE

    Но думаю ваши задачи покроет просто перезагрузка страницы по таймауту, каждые N секунд на том-же JS.

    PS: Если Вам вообще нужно без видимой перезагрузки страницы - вам нужен AJAX
     
    Minor нравится это.
  5. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    245
    Симпатии:
    100
    Но есть один момент - аякс довольно сильно грузит сервер, если у вас несколько клиентов будут висеть и часто пинговать сервер запросами то ничего хорошего из этого не выйдет. Я как то раз забыл страницу закрыть вечером и утром вкладке браузера отожрала 1.5 Гб ОЗУ.
    Поэтому если проект для масс - то только вебсокеты.
     
  6. funnywheel

    funnywheel WordPress developer

    Регистр.:
    6 авг 2010
    Сообщения:
    257
    Симпатии:
    211
    Сокет соединения тоже не бесплатные если чо. Если неправильно готовить, то ни сокеты не помогут, ни лоад-балансеры на AWS c 10 инстансами. А лонг поллинг - самое простое решения, которое покрывает большинство простых задач. Обычно в проектах, где подразумеваются высокие нагрузки вопрос ставится несколько другим образом.