Saya mencari cara untuk mengosongkan cache browser secara terprogram. Saya melakukan ini karena aplikasi menyimpan data rahasia dan saya ingin menghapusnya saat Anda menekan "log out". Ini akan terjadi baik melalui server atau JavaScript. Tentu saja, menggunakan perangkat lunak pada komputer asing / publik masih tidak disarankan karena ada lebih banyak bahaya seperti key logger yang tidak dapat Anda kalahkan pada tingkat perangkat lunak.
javascript
html
caching
browser
Menara
sumber
sumber
Jawaban:
Mungkin saja, Anda cukup menggunakan jQuery untuk mengganti 'tag meta' yang mereferensikan status cache dengan tombol / pengendali peristiwa, lalu menyegarkan, mudah,
CATATAN: Solusi ini bergantung pada Cache Aplikasi yang diterapkan sebagai bagian dari spesifikasi HTML 5. Ini juga membutuhkan konfigurasi server untuk menyiapkan manifes App Cache. Ini tidak menjelaskan metode yang dengannya seseorang dapat menghapus cache browser 'tradisional' melalui kode sisi klien atau server, yang hampir tidak mungkin dilakukan.
sumber
Tidak mungkin browser akan membiarkan Anda menghapus cache-nya. Ini akan menjadi masalah keamanan yang sangat besar jika itu memungkinkan. Ini bisa sangat mudah disalahgunakan - begitu browser mendukung "fitur" seperti itu adalah saat saya mencopot pemasangannya dari komputer saya.
Apa yang dapat Anda lakukan adalah memberitahukannya agar tidak menyimpan halaman Anda, dengan mengirimkan header yang sesuai atau menggunakan tag meta berikut:
Anda mungkin juga ingin mempertimbangkan untuk menonaktifkan pelengkapan otomatis di bidang formulir, meskipun saya khawatir ada cara standar untuk melakukannya ( lihat pertanyaan ini ).
Terlepas dari itu, saya ingin menunjukkan bahwa jika Anda bekerja dengan data sensitif, Anda harus menggunakan SSL. Jika Anda tidak menggunakan SSL, siapa pun yang memiliki akses ke jaringan dapat mengendus lalu lintas jaringan dan dengan mudah melihat apa yang dilihat pengguna Anda.
Menggunakan SSL juga membuat beberapa browser tidak menggunakan caching kecuali secara eksplisit diperintahkan. Lihat pertanyaan ini .
sumber
menggunakan html itu sendiri. Ada satu trik yang bisa digunakan. Triknya adalah menambahkan parameter / string ke nama file di tag skrip dan mengubahnya saat Anda mengubah file.
<script src="myfile.js?version=1.0.0"></script>
Browser menafsirkan seluruh string sebagai jalur file meskipun apa yang muncul setelah "?" adalah parameter. Jadi apa yang terjadi sekarang adalah waktu berikutnya ketika Anda memperbarui file Anda, cukup ubah nomor di tag skrip di situs web Anda (Contoh
<script src="myfile.js?version=1.0.1"></script>
) dan setiap browser pengguna akan melihat file telah berubah dan mengambil salinan baru.sumber
ctime
, (ataumtime
), Anda dapat menambahkan waktu tersebut di belakangnya. Misalnya di php,myfile.js?v=<?=filectime('myfile.js');?>
dan di sana Anda mendapatkan cache pembaruan otomatis untuk sumber daya Anda.Ide terbaik adalah membuat pembuatan file js dengan nama + beberapa hash dengan versi, jika Anda memang perlu menghapus cache, cukup buat file baru dengan hash baru, ini akan memicu browser untuk memuat file baru
sumber
Awalnya saya mencoba berbagai pendekatan programatik di html saya, JS untuk membersihkan cache browser. Tidak ada yang berfungsi di Chrome terbaru.
Akhirnya, saya berakhir dengan .htaccess:
Diuji di Chrome, Firefox, Opera
Referensi: https://wp-mix.com/disable-caching-htaccess/
sumber
location.reload (true); akan memuat ulang halaman saat ini dengan susah payah, mengabaikan cache.
Cache.delete () juga dapat digunakan untuk chrome, firefox, dan opera baru.
sumber
Di Chrome, Anda dapat melakukan ini menggunakan ekstensi pembandingan. Anda perlu memulai chrome Anda dengan sakelar berikut:
Di konsol Chrome sekarang Anda dapat melakukan hal berikut:
Seperti yang Anda ketahui dari perintah di atas, ini tidak hanya membersihkan cache browser, tetapi juga membersihkan cache DNS dan menutup koneksi jaringan. Ini bagus saat Anda melakukan pembandingan waktu buka halaman. Jelas Anda tidak perlu menggunakan semuanya jika tidak diperlukan (misalnya clearCache () sudah cukup jika Anda hanya perlu menghapus cache dan tidak peduli dengan cache dan koneksi DNS).
sumber
sumber
Anda sekarang dapat menggunakan Cache.delete ()
Contoh:
Bekerja di Chrome 40+, Firefox 39+, Opera 27+, dan Edge.
sumber
Bayangkan
.js
file ditempatkan di/my-site/some/path/ui/js/myfile.js
Jadi biasanya tag skrip akan terlihat seperti:
Sekarang ubah itu menjadi:
Sekarang tentu saja itu tidak akan berhasil. Untuk membuatnya bekerja, Anda perlu menambahkan satu atau beberapa baris ke
.htaccess
baris yang penting: (seluruh .htaccess di bagian bawah)Jadi apa yang dilakukannya adalah, ini semacam menghapus
1111111111
dari jalan dan menghubungkan ke jalan yang benar.Jadi sekarang jika Anda melakukan perubahan, Anda hanya perlu mengubah angkanya
1111111111
menjadi nomor apa pun yang Anda inginkan. Dan bagaimanapun Anda memasukkan file Anda, Anda dapat mengatur nomor itu melalui stempel waktu ketika file js terakhir diubah. Jadi cache akan bekerja normal jika jumlahnya tidak berubah. Jika berubah, itu akan menyajikan file baru (YA SELALU) karena browser mendapatkan URL baru yang lengkap dan hanya percaya bahwa file tersebut sangat baru sehingga dia harus mendapatkannya.Anda dapat menggunakan ini untuk
CSS
,favicons
dan apa pun yang disimpan dalam cache. Untuk CSS gunakan saja seperti ituDan itu akan berhasil! Sederhana untuk diperbarui, mudah dirawat.
Jika Anda belum memiliki .htaccess, ini adalah jumlah minimum yang Anda butuhkan:
sumber