Как очистить кеш браузера с помощью php?
Как очистить кеш браузера с помощью php?
- Вы имеете в виду: как предотвратить кеширование моих вещей. Вы не можете очистить кеш браузера с сервера без предустановленного программного обеспечения (activeX и т. д.), которое имеет широкие права на изменение системы пользователя. 24.06.2009
Ответы:
Вы можете удалить кеш браузера, установив эти заголовки:
<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
Похоже, вам нужно версионировать, поэтому, когда происходит какое-то изменение, браузер поймает что-то новое, и пользователю не нужно будет очищать кеш браузера.
Вы можете сделать это по подпапкам (example /css/v1/style.css)
или по имени файла (example: css/style_v1.css)
или даже установить разные папки для вашего сайта, например:
www.mywebsite.com/site1
www.mywebsite.com/site2
www.mywebsite.com/site3
И используйте .htaccess или даже измените httpd.conf для перенаправления на ваше текущее приложение.
Если речь идет об одном изображении или странице:
<?$time = date("H:i:s");?>
<img src="myfile.jpg?time=<?$time;?>">
Вы можете использовать $time для частей, когда не хотите кешировать. Таким образом, он всегда будет тянуть новое изображение. Версионирование кажется лучшим подходом, иначе это может перегрузить ваш сервер. Помните, что кеш браузера полезен не только для пользователя, но и для вашего сервера.
Благодаря недавней поддержке браузерами заголовков Clear-Site-Data вы можете очищать различные типы данных: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site.-Data
header('Clear-Site-Data: cache, cookies, storage, executeContexts');