如果你有一個實時網站(使用PHP,MySQL,JS,CSS)並且說你改變了一些功能。確保最好的方式是,當用戶訪問該網站時,更改的頁面會更新並且不會從緩存中加載?網站更新緩存
網站更新緩存
回答
對於這種共振有文件裝載機。當您加載css,js或任何其他文件時,您必須設置緩存控制標頭。你可以通過編輯.htaccess或者使用php來完成。
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A300
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A300
</IfModule>
PHP演示:
$offset = 3600 * 24;
$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($expire);
通過HTML,在頭節放...
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
有趣的是,我從來沒有聽說過。如果可以的話,它是否總是加載一個新的頁面? –
是的,Expires元指定頁面已經過期並且不能從緩存加載。但是它永遠不會緩存,所以即使頁面沒有改變,它仍然會從服務器請求一個新的頁面。 – craig1231
如果內容保持不變,那麼將所有內容都設置爲不緩存是一個壞主意。 – epascarello
可以使用window.applicationCache.swapCache();和window.location.reload();強制重新加載頁面一次JavaScript確認有一個網站的更新版本。
更好的選擇可能是以某種方式提示用戶,讓他們知道該網站已更新。這樣,頁面不會突然重新加載。
function updateCache(){
window.applicationCache.swapCache();
window.location.reload();
}
window.applicationCache.addEventListener("updateready", updateCache, false);
緩存控制必須通過HEADERS而不是javascript來完成。 –
這將與結合使用。我對你說的話感到困惑。 –
您的解決方案僅適用於即將發佈新聞的網頁。或秒。但如何爲圖像設置緩存?而window.applicationCache只適用於html5。 –
你真的無法控制的政策的每一個瀏覽器,如果符合這些標準,但一般什麼情況是瀏覽器下載在決定是否應該從緩存中加載或重新下載之前,從每個HTML中獲取頭文件。
檢查RFC HTTP 1.1 Header Field瞭解更多詳情(特別是高速緩存控制下)
除非你有某種形式的緩存會將用戶的請求數據,如果已經更新檢查。通常你的PHP不會被緩存,除非你有主動緩存。
你的JS和CSS將不得不通過HEADERS在Apache下設置(或者你使用的任何Web服務器)。
- 1. 緩存和更新我的網站
- 2. 網站緩存
- 3. 如何刷新網站緩存?
- 4. 確保網站更新時在Internet Explorer上清除網站緩存
- 5. 舊網站新的WordPress網站緩存問題
- 6. .htaccess:緩存控制,我該如何處理網站更新?
- 7. 網站html不會因爲緩存而更新爲用戶
- 8. Chrome緩存不會在我的網站上更新
- 9. 刪除caches_page緩存的網站後仍然沒有更新
- 10. 避免瀏覽器緩存加載,如果網站更新
- 11. 更新網站。 IE瀏覽器保留舊的緩存
- 12. 更新網頁的緩存時更新我的網頁
- 13. 更新網站
- 14. 網站文件緩存?
- 15. 緩存靜態HTML網站
- 16. Azure網站緩存策略
- 17. Ho更新網站時處理保存在緩存中的圖像嗎?
- 18. 網站文件不會更新(即使在硬刷新和清除緩存後)
- 19. 更新Joomla網站
- 20. 如何讓瀏覽器刷新(刷新)我的網站緩存?
- 21. 網站放緩
- 22. 更新數據庫表更新緩存
- 23. 在Symfony網站中更改資源而無需刷新瀏覽器緩存
- 24. 正在更新index.html isnt更新網站
- 25. 就地更新tycho更新網站
- 26. 更新jquery更新 - jquery.com網站下載
- 27. 要緩存或不緩存 - 圖庫照片網站
- 28. html5應用程序緩存joomla網站
- 29. 在Node.js中緩存網站數據
- 30. 爲asp.net網站緩存大對象
不要忘記將mod_expires安裝到apache。許多主機不支持它。 –
感謝您的回覆!看起來這可能是解決方案。數字是多少? A300等,是多久緩存在幾秒鐘? – georgesamper
@George是的。你可以閱讀更多在http://httpd.apache.org/docs/1.3/mod/mod_expires.html –