ホームページ  >  記事  >  php教程  >  PHPを使用してIEとFirefoxのキャッシュ問題を無効にする

PHPを使用してIEとFirefoxのキャッシュ問題を無効にする

WBOY
WBOYオリジナル
2016-06-13 11:56:171122ブラウズ

ネットワーク速度を改善するための多くの方法を探した結果、最終的に解決しました
実際、最も簡単な方法はヘッダーに タグを追加することです



プログラム制御も使用できます

コードをコピーします コードは次のとおりです:


header("Cache-control:no-cache,no-store,must-revalidate");
header("Pragma:no-cache"); header("有効期限:0");
?>


または header("Cache-control:no-cache,no-store,
以下はあなたのための具体的な分析です:
Firefox と IE ブラウザの 2 つのキャッシュ 重要な違い
WEB サービスを作成した後、通常は 2 種類のキャッシュを設定する必要があります:
Web サイトが更新されるとすぐに期限切れになるように HTML リソースを設定します。これにより、閲覧中のユーザーがすぐにキャッシュを取得できるようになります。
他のすべてのリソース (画像、CSS、JavaScript スクリプトなど) を一定期間後に期限切れに設定します。
このキャッシュ ソリューションは、HTTP キャッシュに関する 2 つの簡単なルールの記事で説明されているアイデアの一部をカバーしています。
HttpWatch 6.0 が Firefox をサポートするようになったので、Firefox が IE とは異なる方法でキャッシュを処理する方法について説明したいと思います。有効期限を長く設定する方法 (上記の 2 番目の項目) は、引き続き Firefox で直接使用できます。
前の記事では、最初のものを次のように分割しました。
動的 HTML ページをいつでも表示できるように、サーバーから即座に更新する必要がある場合があります -たとえば、銀行口座やオンライン注文のステータスを表示する場合でも、
連絡先、FAQ、サイトマップなどの静的 HTML ページでは、Last-Modified 応答ヘッダーが設定されている場合、ブラウザーの再読み込みが可能になります。必要に応じて、キャッシュを利用できます。
この記事の残りの部分では、Firefox の HTML ページのキャッシュに影響する 2 つの重要な違いについて説明します。

1. Firefox を使用しないようにします。キャッシュの無効化
次の応答ヘッダーを設定するだけで、IE が何もキャッシュしないようにすることができます。
Cache-Control: no-cache
この応答ヘッダーを使用するページはキャッシュに保存されません。次の例では、[戻る] ボタンを使用した場合でも、オンライン ストアを監視するために [戻る] ボタンをクリックすると、次のような結果が得られます。
ただし、この応答ヘッダーは Firefox のキャッシュを防ぐことはできません。これは、Firefox が再チェックする GET リクエストを送信するまで、キャッシュされたページを常に使用することを意味します。また、ページに戻るボタンからアクセスした場合、Firefox はアクセスしません。

では、どうすれば Firefox でキャッシュをオフにできるでしょうか? 答えは簡単で、Firefox はキャッシュをオフにすることができないからです。 「ファイル」>「名前を付けて保存」、「ソースの表示」でキャッシュを実行すると、ページがどこにキャッシュされるか、およびどのキャッシュ エントリを表示に使用できるかを制御できます。
次の応答ヘッダーにより、永続的なキャッシュが防止されます。 Firefox、ページをメモリに強制的にキャッシュします。
Cache-Control:no-store
このヘッダーは、「戻る」ボタンを使用したときにキャッシュされたページにアクセスできないようにすることもできます。これにより、HTTP GET リクエストがトリガーされます。
これら 2 つの応答ヘッダーの値を IE と Firefox で組み合わせると、期待される結果が得られます:
Cache-Control: no-cache, no-store
次の HttpWatch 応答ヘッダー タグに示すように:



2。有効期限を設定しない場合、IE は Expires ヘッダーのない http 応答を検出すると、有効期限を設定します。キャッシュ エントリは、サービスから再検証されるまで自動的に使用されることはありません。IE の一時ファイルの設定により、「Web ページの新しいバージョンの確認」はデフォルトで「自動」になっているため、通常はセッションごとに 1 回実行されます。 これにより、ユーザーが新しく開いた HTML コンテンツのキャッシュを制御する適切な方法が提供され、IE を閉じるまでキャッシュされたバージョンが使用されます。
ヘッダーの有効期限は異なります。インパクトに Last-Modified ヘッダーがある場合は、RFC2616 で指定されている HTTP 1.1 仕様が使用されます。
(
参照仕様 :) そして、応答に Last-Modified 時刻の値がある場合、暫定的な有効期限の値は、この値と現在の比率の時間間隔を超えることはできません。通常、この比率は 10% に設定します。
計算方法は次のとおりです。
有効期限 = 現在時刻 0.1 * (Last-Modified から現在までの時間差)
たとえば、静的 HTML ファイルの場合、最終変更時刻は 100 日前、有効期限は 10 日後です。例は、Expires ヘッダー ページのない HttpWatch キャッシュ タグです:
pic3
このページは約 80 日間変更されていないため、Firefox は有効期限を自動的に 8 日後に設定します。
これは、それを意味します。 HTTP キャッシュに関する 2 つの簡単なルールの記事で説明したように、HTML ページの制御を維持するには、HTML、画像、CSS ファイルなどの静的リソースを提供し、WEB 上で適切な Expires 値を設定することをお勧めします。


結論 IE と Firefox のキャッシュ動作の一貫性を確保するには、次のことを行う必要があります。
常に Expires ヘッダーを指定します。一般設定 -1 を使用します。 HTML ページをすぐに更新するか、画像、CSS、JavaScript スクリプトなどの他のリソースに特定の有効期限を設定します
ページを強制的に更新したい場合は、背景ボタン をクリックしてから、キャッシュ制御: no- を設定します。キャッシュ、ストアなし

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。