Принудительное обновление кэша файлов браузера с помощью JavaScript - PullRequest
0 голосов
/ 28 октября 2019

У меня есть скрипт Python в Splunk, который генерирует отчет .docx.

Когда этот отчет будет создан, я получу ссылку на этот файл, которую я использую на своей панели инструментов html / js, чтобы предоставить пользователю ссылку для скачивания. ,Файл находится внутри экземпляра Splunk, Splunk имеет свой собственный кеш, но этот очищается с версией _bump.

Проблема (вероятно) заключается в том, что браузер кэширует файл, и если я создаю новый отчет с другим содержимымзатем я продолжаю загружать старый файл вместо нового.

Я могу загрузить новую версию файла, только если я Empty cache and hard reload веб-страница.

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

Есть ли способ очистки этого кэша и полной перезагрузки с помощью javascript или как заставить браузер загрузить новую версию файла?

1 Ответ

1 голос
/ 28 октября 2019

Браузеры кешируют файлы на основе заданного URL. Чтобы управлять кэшем через интерфейсный браузер, просто добавьте ?cachebust=TIMESTAMP к URL-адресу, где TIMESTAMP - просто new Date().getTime(). Поскольку вы добавляете его в качестве параметра запроса, он все равно будет запрашивать тот же ресурс из серверной части, поэтому вам не нужно ничего делать на стороне сервера.

Если вы хотите, чтобы он былверсия, так что вы можете лучше контролировать, когда кэш отключен, вы можете использовать число, которое увеличивается только тогда, когда вы хотите разрушить кэш. Все, что имеет значение, это изменения URL.

http://www.example.com/someFile.txt?cacheBust=109230110238
...