Saya memiliki skrip python di Splunk yang menghasilkan laporan .docx.

Ketika laporan ini dibuat, saya akan menerima tautan ke file ini yang saya gunakan di dasbor html/js saya untuk memberi pengguna tautan unduhan. File terletak di dalam instance Splunk, Splunk memiliki cache sendiri tetapi yang ini dihapus dengan versi _bump.

Masalahnya (mungkin) adalah browser sedang menyimpan file dan jika saya membuat laporan baru dengan konten yang berbeda maka saya terus mengunduh file lama alih-alih yang baru.

Saya dapat mengunduh file versi baru hanya jika saya Empty cache and hard reload halaman webnya.

Saya dapat membuat solusi dengan membuat file dengan nama berbeda di python tetapi itu seperti solusi terakhir yang mungkin. Saya akan senang jika hanya 1 laporan yang dihasilkan.

Apakah ada cara untuk menghapus cache ini dan membuat hard reload dengan javascript atau bagaimana memaksa browser untuk mengunduh versi baru dari file?

0
Ondřej Ševčík 28 Oktober 2019, 17:21

1 menjawab

Jawaban Terbaik

Browser menyimpan file berdasarkan URL yang diberikan. Untuk mengontrol cache melalui browser front-end, cukup tambahkan ?cachebust=TIMESTAMP ke URL, di mana TIMESTAMP hanyalah new Date().getTime(). Karena Anda menambahkannya sebagai parameter kueri, itu masih akan meminta sumber daya yang sama dari back-end, jadi Anda tidak perlu melakukan sesuatu yang mewah di sisi server.

Jika Anda ingin membuatnya diversi sehingga Anda memiliki kontrol lebih besar saat cache rusak, Anda bisa menggunakan nomor yang hanya bertambah saat Anda ingin memecahkan cache. Yang penting adalah perubahan URL.

http://www.example.com/someFile.txt?cacheBust=109230110238
1
Peter LaBanca 28 Oktober 2019, 14:32