F5danCtrl+F5pencetus dalam pelayar web?
Saya telah melakukan eksperimen dalam IE6 dan Firefox 2.x. Muat semulaF5akan mencetuskan permintaan HTTP kepada pelayan yang mengandungi pengepalaIf-Modified-Since
, manakalaCtrl+F5tidak akan mempunyai pengepala sedemikian. Dari pemahaman saya,F5akan cuba memanfaatkan sebanyak mungkin kandungan cache, manakalaCtrl+F5bertujuan untuk membuang semua kandungan cache dan hanya mengambil semula semuanya daripada pelayan.
Tetapi hari ini, saya perhatikan bahawa dalam beberapa penyemak imbas terkini (Chrome, IE8) ia tidak lagi berfungsi dengan cara ini.F5danCtrl+F5kedua-duanya menghantar pengepalaIf-Modified-Since
.
Jadi, bagaimanakah ini sepatutnya berfungsi, atau (jika tiada standard) bagaimanakah pelayar utama berbeza dalam cara mereka melaksanakan fungsi muat semula ini?
Ia bergantung pada penyemak imbas, tetapi mereka berkelakuan dengan cara yang sama.
F5Biasanya hanya mengemas kini halaman apabila ia telah diubah suai. Penyemak imbas moden menghantar
Cache-Control: max-age=0
untuk memberitahu masa maksimum (berbanding dengan masa permintaan) bahawa mana-mana sumber cache akan dianggap segar.CTRL-F5digunakan untuk memaksa kemas kini, mengabaikan sebarang cache. Pelayar moden menghantar
Cache-Control: no-cache
和Pragma: No-cache
Jika saya ingat betul, Netscape ialah penyemak imbas pertama yang menambah sokongan kawalan cache dengan menambahkanapabila menekanCTRL
Pragma: No-cache
- F5.Nota pada Chrome 6.0.472: Jika anda melakukan muat semula paksa (cth.CTRL-F5), ia berkelakuan seolah-olah URL ditandakan secara dalaman seperti sentiasa paksa muat semula. Jika anda pergi ke bar alamat dan tekan Enter, bendera akan dikosongkan.
Secara amnya:
Walaupun kandungan berubah,F5boleh memberi anda halaman yang sama kerana ia mungkin memuatkan halaman dari cache. TetapiCtrl+F5akan memaksa penyegaran cache dan menjamin anda akan mendapat kandungan baharu jika ia berubah.