Для того, чтобы получить данные в фоне и обновить контент который был изменен, необходимо использовать Server-sent events.
Суть технологии в том, что браузер клиента подписывается на обновления контента которые формируются в потоке.
Для реализации технологии потребуется реализация клиентской части и серверной.
Серверная часть
В качестве примера реализуем сервер который будет отсылать клиенту время сервера.
Создадим файл который будет отвечать за выборку контента в потоке.
.../date/listen.php
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/app/configuration/init.php';
\Prologue\Framework\Http\SSE::listen(function () {
$data = \Prologue\Framework\Date\DateManager::getDateNow('datetime');
return $data;
});
Клиентская часть
<script>
new EventSource('.../date/listen.php').onmessage = function (e) {
var response = JSON.parse(e.data);
console.log(response);
};
</script>
Клиент создаст соединение и подпишется на обновления. Если контент изменился - данные попадают в объект response