При использовании сервера отправляются события, браузер кэширует предыдущие данные. Как предотвратить кеширование в браузере

Мой код показан ниже. Я использую антуражную колбу с питоном.

def testing():
    message = "hai"
    yield 'data: %s\n\n' % message


@app.route('/stream')
def stream():
    return flask.Response(testing(),mimetype="text/event-stream")

1 ответ

Вы можете сделать это на стороне клиента или сервера, вот как:

На стороне клиента (в браузере) проще всего было бы привязать параметр запроса к вашему запросу, т.е.

$http.get('/stream?b=123456');

где 123456 - случайная строка, может быть отметкой времени в миллисекундах. Случайный параметр заставит браузер переслать запрос и не использовать его кеш.

ИЛИ на стороне сервера, вы бы отправили специальные заголовки контроля кэша:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

Любой из них должен сработать, просто убедитесь, что вы правильно реализовали его на языке, который вы используете.

Другие вопросы по тегам