ホームページ >バックエンド開発 >PHPチュートリアル >サーバー上のリソースは更新されるのに、ブラウザーが更新されない場合があるのはなぜですか?
Baidu Tieba のユーザーのアバターが修正されてもすぐに更新されない時期があったと記憶していますが、その時は IE を使用していたようです。
更新されない理由は 2 つ考えられます:
ブラウザはリソースが更新されたかどうかを検出せず、キャッシュを直接呼び出します。
リソースを節約するために、特定のサーバーはリソースが更新されたかどうかを検出するリクエストに応答しません。
私が知りたいのは、これら 2 つの状況が不可能であるかどうかです。また、サーバー上のリソースが更新された後にクライアントのブラウザーがリソースを更新しない原因となる要因は他にありますか?
ブラウザはリソースが更新されたかどうかを検出せず、キャッシュを直接呼び出します。
設定できるブラウザのキャッシュ機能です。
ただし、最大限のユーザー エクスペリエンスを確保するために、開発者がこれを設定することは一般的に推奨されません
ブラウザーがリアルタイムの情報をすぐに表示できるように、キャッシュを無効にするヘッダーを適切な場合に送信する必要があります
リソースの場合、特定のサーバーがリソースが更新されたかどうかの検出要求に応答しません。
そのようなサーバーはありませんが、そのようなサーバーサイドプログラムは存在します。
キャッシュ機能を備えたテンプレート エンジンやフレームワークも使用したいと思いませんか?
もう 1 つの状況は、一部のファイルがキャッシュ サーバーに配置され、定期的にのみ更新されるということです
リアルタイムで更新したい場合は、ブラウザのキャッシュ (ページ自体に使用される) を無効にするヘッダー情報を送信できます
またはhttp として書かれたランダム コードを ://host/sample.css?xxxxxxxxxxxxxx の形式で送信します (ページ内の他の非ページ コントロールに使用されます)
キャッシュしてサーバーの負荷を軽減したい場合は、次のことができます。ブラウザのキャッシュ ヘッダー
または 304 ヘッダー情報 (本文データなし、二次リクエストに使用) を送信します。これは主にサーバー レベルの応答で行われ、プログラムで使用されることはほとんどありません