410

+ WebブラウザでどのようなアクションF5とトリガーを行うかについての標準はありますか?CtrlF5

私はかつてIE6とFirefox2.xで実験をしました。更新により、ヘッダーF5 付きでサーバーに送信されるHTTPリクエストがトリガーされますが、+にはそのようなヘッダーはありません。私の理解で は、キャッシュされたコンテンツを可能な限り利用しようとしますが、+はすべてのキャッシュされたコンテンツを破棄し、サーバーからすべてのコンテンツを再度取得することを目的としています。If-Modified-SinceCtrlF5F5CtrlF5

しかし、今日、私はいくつかの最新のブラウザ(Chrome、IE8)でそれがもはやこのように機能しないことに気づきました。+の両方がヘッダーF5を送信します。CtrlF5If-Modified-Since

では、これはどのように機能するのでしょうか。または(標準がない場合)主要なブラウザーは、これらの更新機能の実装方法がどのように異なるのでしょうか。

4

6 に答える 6

530

それはブラウザ次第ですが、同様の方法で動作します。

F5通常、変更された場合にのみページを更新します。最新のブラウザーCache-Control: max-age=0は、要求の時間と比較して、リソースが新鮮であると見なされる最大時間を任意のキャッシュに通知するために送信します。

CTRL-F5キャッシュを無視して更新を強制するために使用されます。最新のブラウザーは送信Cache-Control: no-cacheし、Pragma: No-cache

私の記憶が正しければ、-Pragma: No-cacheを押したときに追加することでキャッシュ制御のサポートを追加した最初のブラウザーは Netscape でした。CTRLF5

┌───────────┬──────────────┬─────┬─────────────────┬──────────────────────────────┐
│ 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                     │
└─────────────────────────────────────────────────────────────────────────────────┘

Chrome 6.0.472 に関する注意: 強制リロード ( CTRL-などF5) を実行すると、常に強制リロードを実行するように URL が内部的にマークされているように動作します。アドレス バーに移動して Enter キーを押すと、フラグがクリアされます。

于 2008-12-22T03:40:59.173 に答える
330

一般的に言えば:

F5キャッシュからページをロードする可能性があるため、コンテンツが変更されても同じページが表示される場合があります。ただし、Ctrl+F5はキャッシュの更新を強制し、コンテンツが変更された場合に新しいコンテンツを取得することを保証します。

于 2008-12-22T02:10:55.297 に答える
69

クロスブラウザー互換ページを実装して、ブラウザーの更新動作をテストし (ソース コードはこちら)、@some と同様の結果が得られますが、最新のブラウザーの場合は次のようになります。

ここに画像の説明を入力

于 2012-03-12T16:59:02.580 に答える
10

少なくともFirefox(v3.5)では、キャッシュは単にクリアされるのではなく、無効になっているようです。1ページに同じ画像のインスタンスが複数ある場合は、複数回転送されます。これは、img後でAjax/JavaScriptを介して追加されるタグにも当てはまります。

したがって、ブラウザが自動更新Ajaxサイトに同じ小さなアイコンを数百回ダウンロードし続ける理由がわからない場合は、最初にCTRL-を使用してページをロードしたためですF5

于 2009-07-22T08:47:31.597 に答える
4

IE7/8/9 は、ページにフォーカスがあるかどうかによって動作が異なるようです。

ページをクリックしてCTRL+をクリックするF5と、リクエスト ヘッダーに「Cache-Control: no-cache」が含まれます。場所/アドレスバーをクリックしてからCTRL+を押すF5と、そうではありません。

于 2011-10-12T00:31:44.390 に答える