Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2025, 18:31
Новичок на форуме
Отправить личное сообщение для YuryS Посмотреть профиль Найти все сообщения от YuryS
 
Регистрация: 05.07.2025
Сообщений: 1

Бесконечное исполнение EventSource.onmessage
Добрый день !
Я хочу организовать потоковый вывод - делаю это так
1) на основной странице у меня скрипт вида
<script>
                    var content = document.getElementById('content');
                    var source = new EventSource('/stream?message=${message}');
                    source.onmessage = function(event) {
                        content.innerHTML += event.data + '<br>';
                    };
</script>


Сам генератор, как Python-программа выглядит так --
def stream(self, message):
        # Настраиваем заголовки для потокового вывода
        cherrypy.response.headers['Content-Type'] = 'text/event-stream'
        cherrypy.response.headers['Cache-Control'] = 'no-cache'

        # Генератор для потокового вывода данных
        def generate():
            for i in range(5):
                yield f"data: Processing {message} - step {i+1}\n\n"
                time.sleep(1)
            yield f"data: Finished processing {message}\n\n"

        return generate()


Проблема состоит в том, что после первого вызова stream, он, как положено, выводит 5 сообщений + финальное сообщение, однако, после этого, снова срабатывает функция generate, хотя нового входа в stream не было, вновь печатается 6 сообщений, и так до бесконечности.
Почему это происходит и как это исправить, чтобы исполнение generate происходило только один раз ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечное движение видео по горизонтали Saitama Общие вопросы Javascript 1 08.02.2019 11:06
Фоновое исполнение скрипта в браузере operbond Ваши сайты и скрипты 2 18.03.2018 21:29
Как просмотреть в браузере исполнение этого кода Вася2002 Events/DOM/Window 9 27.08.2015 20:28
Как присвоить текстовому полю исполнение функции? vistecter Элементы интерфейса 2 24.06.2011 20:16
Динамическая подзагрузка и исполнение скриптов NT Man Javascript под браузер 2 28.08.2009 12:32