2005年1月7日 星期五

強迫瀏覽器不使用快取

有時候我們在按下重新整理的時候,並不一定會再連向 web server要一次資料,我們可以在檔頭這樣寫,強迫瀏覽器不使用 Cache 與Proxy 中的資料。



【ASP】語法:


在 head 裡寫-


<meta http-equiv="Expires" content="Wed, 4 Feb 1981 21:00:00 GMT">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">


【PHP】語法:


<?
header("Expires: Wed, 4 Feb 1981 21:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>



這樣可以保證,當瀏覽器重新整理的時候,會得到最新的資料。


-- ※ Origin: 碩誠資訊


註: 不過,經測試後,發現對於Client端已造訪過某一網頁時,仍然還是會抓取舊的 cache 頁面,真是很奇怪。

4 則留言:

  1. honey 再研究看看為何會有例外狀況囉。

    回覆刪除
  2. 哈!終於知道了。

    原來你的首頁裡,若還會去呼叫其他程式(例如:.htm, .asp, ...),就要在每一支程式的Head裡寫這三行程式。
    這樣才都會 "不使用Cache" 這項功能。

    難怪,怎麼改主程式,它都不理人。

    回覆刪除
  3. 可使用此招,兩次避免讀取pragma

    <HTML>
    <HEAD>
    <TITLE>---</TITLE>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    </HEAD>
    <BODY>

    Text in the Browser Window

    </BODY>
    <HEAD>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    </HEAD>
    </HTML>

    回覆刪除
  4. 謝謝你專業的留言,感謝。

    回覆刪除