URL dengan kueri menonaktifkan cache?

12

Apakah memiliki string kueri yang dilampirkan ke URL menyebabkan peramban tidak pernah menyimpannya? Misalnya, situs saya melakukan sesuatu seperti ini:

/radar-picture.png?v=sep2013

Dan tampaknya FireFox tidak pernah menyimpan gambar itu; itu diunduh pada setiap permintaan.

Saya ingin FireFox untuk men-cache-nya, selama itu mau. Saya hanya ingin memaksanya mengunduh ketika v=parameter telah berubah.

Tuan Smith
sumber
1
Saya kira Anda bisa mencapai ini, jika Anda hanya mengubah nama file itu sendiri, bukan permintaan. Jadi sekarang nama file akan radar-picture-sep2013.pngdan ketika itu berubah di beberapa titik di masa depan itu akan terjadi radar-picture-jan2014.png. Anda dapat mengonfigurasi usia maksimum PNG hingga satu tahun jadi kecuali jika nama file berubah, browser dapat memuat gambar yang di-cache untuk waktu yang lama.
vstm

Jawaban:

3

Menambahkan pasangan kunci-string / nilai ke sumber daya statis (seperti gambar, CSS atau JavaScript) dapat menyebabkan masalah caching .

Khususnya, karena Anda menyebut Firefox , masalah Anda dapat dikaitkan dengan 'Tabrakan cache', di mana:

Fungsi hash cache disk Firefox dapat menghasilkan collision untuk URL yang hanya berbeda sedikit, yaitu hanya pada batas 8 karakter. Ketika sumber daya hash ke kunci yang sama, hanya satu sumber daya yang tetap ada ke cache disk; sumber daya yang tersisa dengan kunci yang sama harus diambil ulang di seluruh browser restart. Jadi, jika Anda menggunakan sidik jari atau menghasilkan URL file secara terprogram, untuk memaksimalkan tingkat hit cache, hindari masalah tabrakan hash Firefox dengan memastikan bahwa aplikasi Anda menghasilkan URL yang berbeda pada lebih dari batas 8 karakter.

[Sumber: https://developers.google.com/speed/docs/best-practices/caching ]

Mike Hudson
sumber
7
Apa itu "batas 8 karakter" dan BAGAIMANA saya bisa menghindari tabrakan ini? Bagaimana seharusnya URL saya nantinya?
Andrew
2

Jawaban pada stackoverflow ini mengklaim bahwa beberapa browser bereaksi berbeda terhadap menekan enter di address bar vs mengklik pada tautan ketika url memiliki string kueri: https://stackoverflow.com/a/85386/1145388

Saat Anda menguji, pastikan Anda mengklik tautan daripada menyegarkan atau menekan enter di bilah url.

Stephen Ostermiller
sumber
2
Saya pikir jawaban pada stackoverflow mungkin sudah usang. Ketika saya meletakkan string kueri pada stylesheet style.css?v=sep2013dan 150KiB background-image:url('bgimage.jpg?v=sep2013');, menavigasi situs (melalui tautan mengklik, atau mengetik di address-bar) sangat lambat di FireFox.
Tn. Smith