Бесконечное исполнение 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 происходило только один раз ? |
Часовой пояс GMT +3, время: 11:31. |