2012-01-19 12 views
0

私は、基礎となるデータに基づいて数分ごとに変化するPHP生成ページを持っています。ユーザーがリンクをたどるまでは、すべてが有効です。ユーザーがブラウザの戻るボタンをクリックして戻ると、以前にロードされたバージョンのページが表示されます。ブラウザーは、サーバーからページをリロードしていません。ブラウザが動的コンテンツをキャッシュするのを止める方法

サーバーから新しいコンテンツを取得するには、ユーザーがリロードをクリックする必要があります。

私は通常のメタタグを試して、PHPからheader()を出力しました。

IE、FF、Chromeの動作は同じです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
    Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta http-equiv="cache-control" content="no-cache"> 
    <meta http-equiv="pragma" content="no-cache"> 
+0

ブラウジングの自然な動作を指しています。あなたはこれをしないサイトを指すことができますか? –

+0

@カイはい、私はあなたにはたくさんのサイトを表示することができます。 Amazon.comを試してみてください。 – user191688

+0

多分私は何かを間違えた。 Amazonの場合、私は彼らがキャッシュしていないとは思わない。彼らはリロードのためにあまりにも巨大である。しかし、以下の答えがうまくいくならば、すべてが良いです。 –

答えて

2

header("Cache-control: no-store, no-cache, must-revalidate"); 
header("Expires: Mon, 26 Jun 1997 05:00:00 GMT"); 
header("Pragma: no-cache"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

これらのヘッダを設定してみてくださいこれは、ページをキャッシュすると、彼らが戻って打つときに、それはリロードする必要がありません、ブラウザに指示します。

+0

パーフェクション。 "Pragma:no-cache"は明らかに重要です。ありがとう。 – user191688

+0

ヘッダーの意味は何ですか( "Expires:Mon、26 Jun 1997 05:00:00 GMT")。 –

+0

@ talhamalik22これは、過去に有効期限があったことをブラウザに伝えるので、新しいコピーが必要です。実際に最初の3つのヘッダーのどれかが動作するはずですが、異なるブラウザーが異なる応答をするので、すべてのヘッダーを含めるのが最善です。あなたはそれを任意の日付に設定することができ、そうである必要はありません。Jun 26 1997 – andrewtweber

関連する問題