0
我們解決了在「如何防止Web瀏覽器緩存頁面?」中禁用客戶端緩存的任務,但禁用緩存很少是唯一(或最佳)選項。如何控制客戶端緩存?
這裏我們來看看一種機制,它允許我們利用客戶端緩存的方式來控制PHP腳本中的內容。
Apache必需! 如果您將PHP作爲Apache Web服務器模塊運行,則此方法僅適用,因爲它需要使用函數getallheaders(僅適用於Apache)來獲取Web瀏覽器發送的HTTP標頭。
我們解決了在「如何防止Web瀏覽器緩存頁面?」中禁用客戶端緩存的任務,但禁用緩存很少是唯一(或最佳)選項。如何控制客戶端緩存?
這裏我們來看看一種機制,它允許我們利用客戶端緩存的方式來控制PHP腳本中的內容。
Apache必需! 如果您將PHP作爲Apache Web服務器模塊運行,則此方法僅適用,因爲它需要使用函數getallheaders(僅適用於Apache)來獲取Web瀏覽器發送的HTTP標頭。
htaccess的方法:
<FilesMatch ".(html|htm|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>
PHP的方法:
<?php
header("Cache-Control: no-cache, no-store, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
jQuery的/ AJAX方法:
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
貧民窟方法:
<a href="/path/page.php?r=random-number-generated-with-javascript-or-php">stuff</a>
在什麼情況下?你可以追加?r = randomnumber或者你可以傳遞頭文件的ajax,你需要更具體。 – OneOfOne
搜索'Expires'和'Cache-Control'標題並查看如何使用它們。 – dcro