Автообновление конкретного блока(div)

Аватар пользователя Artalek Artalek 13 ноября 2020 в 8:02

Здравствуйте, у меня на странице выводится некая информация, которая может быть обновлена(изменена), и необходимо каждые 5 секунд обновлять данный блок(другой вариант не придумал).

Вопрос как это сделать в шаблоне TWIG?

Раньше, при использовании шаблонов PHP, я просто отправлял POST запрос и в шаблоне прописывал данный код:

.....
                <?php
                        if (($_SERVER['REQUEST_METHOD'] == 'POST') && (isset($_POST['update_list']))) {
                                ob_end_clean();
                        }
                ?>
..... <!-- Тот самый блок, который необходимо обновлять -->
                        <?php
                                if (($_SERVER['REQUEST_METHOD'] == 'POST') && (isset($_POST['update_list']))) {
                                        exit();
                                }
                  ?>

Но я не знаю как такое сделать в шаблоне TWIG, и может есть более хороший вариант.

Комментарии

Аватар пользователя Artalek Artalek 13 ноября 2020 в 11:53

вопрос в том как мне указать в шаблоне twig, откуда и до откуда он должен обновлять, т.е. ob_end_clean(); и exit();

Аватар пользователя bumble bumble 13 ноября 2020 в 11:51

Раньше, при использовании шаблонов PHP, я просто отправлял POST запрос и в шаблоне прописывал данный код

Теперь, делайте нормально.

Аватар пользователя bumble bumble 13 ноября 2020 в 11:56

Есть мысль посоветовать почитать литературу для новичков. Если готовы рассмотреть более конкретно - распишу.

Аватар пользователя Artalek Artalek 16 ноября 2020 в 12:33

А как использовать Fetch с Drupal? Чтобы обновить к примеру блок div?
Нужно каждые 5 секунд выполнять запрос Fetch, и получить данный блок и потом его заменить просто?

Аватар пользователя bumble bumble 16 ноября 2020 в 12:36

А каким образом fetch зависит от технологии, с которой его используют?

Аватар пользователя Artalek Artalek 16 ноября 2020 в 13:12

В том смысле, правильно ли я понял, что нужно сделать?

Нужно каждые 5 секунд выполнять запрос Fetch, и получить данный блок и потом его заменить просто?

Аватар пользователя bumble bumble 16 ноября 2020 в 13:40

Нужно каждые 5 секунд выполнять запрос Fetch, и получить данный блок и потом его заменить просто?

Надеюсь, знак вопроса там случайно.

Ок. Что нужно сделать, моя версия:
- добавить роут (контроллер, путь, страницу, точку доступа.. как хотите), который будет ответственен за выдачу нужных данных.
- написать скрипт, с логикой, для клиента (на Javascript), который будет делать запросы на этот роут, с нужным интервалом, и обновлять данные.

Использовать фетч, аякс, любую приглянувшуюся либку, которая под капотом сделает все за вас - уже дело вкуса.

Не вижу здесь никаких сложностей и необходимости что-либо изобретать. Хотя, если заморочится и фц-нал нужен в различных местах - можно сообразить свою аякс-командочку, как советовали ранее.

Аватар пользователя vlucas vlucas 13 ноября 2020 в 12:27

Не надо делать это в шаблоне twig
Вы должны отловить событие изменения/добавления навесить на него свой обработчик в котором написать вашу аякс команду.