Apakah permintaan yang akan dijana oleh penyemak imbas "F5" dan "Ctrl + F5" penyegar semula?
P粉593649715
P粉593649715 2023-10-11 10:38:51
0
2
531
Adakah terdapat standard untuk tindakan

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?

P粉593649715
P粉593649715

membalas semua (2)
P粉665679053

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 menghantarCache-Control: max-age=0untuk 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 menghantarCache-Control: no-cachePragma: No-cache

Jika saya ingat betul, Netscape ialah penyemak imbas pertama yang menambah sokongan kawalan cache dengan menambahkanapabila menekanCTRLPragma: No-cache- F5.

┌───────────┬──────────────┬─────┬─────────────────┬──────────────────────────────┐ │ Version 4 │ F5 │ R │ CLICK │ Legend: │ │2021 MAY 19├──┬──┬──┬──┬──┼──┬──┼──┬──┬──┬──┬──┬──┤ C = Cache-Control: no-cache │ │ │ │S │C │A │A │C │C │ │S │C │A │A │C │ I = If-Modified-Since │ │ │ │H │T │L │L │T │T │ │H │T │L │L │T │ M = Cache-Control: max-age=0 │ │ │ │I │R │T │T │R │R │ │I │R │T │T │R │ N = Not tested │ │ │ │F │L │ │G │L │L │ │F │L │ │G │L │ P = Pragma: No-cache │ │ │ │T │ │ │R │ │+ │ │T │ │ │R │+ │ - = ignored │ │ │ │ │ │ │ │ │S │ │ │ │ │ │S │ │ │ │ │ │ │ │ │ │H │ │ │ │ │ │H │ With 'CLICK' I refer to a │ │ │ │ │ │ │ │ │I │ │ │ │ │ │I │ mouse click on the browsers │ │ │ │ │ │ │ │ │F │ │ │ │ │ │F │ refresh-icon. │ │ │ │ │ │ │ │ │T │ │ │ │ │ │T │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1: Version 3.0.6 sends I │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ and C, but 3.1.6 opens │ │Brave 1.24 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ the page in a new tab, │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ making a normal request │ │Chrome 1 │MI│MI│MI│- │- │MI│- │MI│MI│MI│MI│MI│N │ with only I. │ │Chrome 6 │MI│CP│CP│- │- │MI│CP│MI│CP│CP│MI│- │N │ 2: Version 10.62 does │ │Chrome 90 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ nothing. 9.61 might do C │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ unless it was a typo in │ │Edge 90 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ my old table. │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ 3: Opens the currernt tab in │ │Firefox 3.x│MI│- │CP│- │- │MI│CP│MI│CP│1 │M │MI│N │ a new tab, but does not │ │Firefox 89 │M │- │CP│- │M │M │CP│M │CP│3 │M │M │3 │ refresh the page if it is │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ cached in the browser. │ │MSIE 8, 7 │I │- │C │- │I │I │ │I │I │C │I │I │N │ │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ │ │Opera 10, 9│C │- │- │2 │- │C │- │C │C │C │C │- │N │ │ │Opera 76 │M │CP│CP│- │- │M │- │M │CP│CP│M │CP│CP│ │ ├───────────┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──────────────────────────────┤ │ https://stackoverflow.com/a/385491/36866 │ └─────────────────────────────────────────────────────────────────────────────────┘

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.

    P粉675258598

    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.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!