Ответ 1
Хорошо, если страница уже кэширована браузером, трудно сказать, что она не использует свою кешированную версию, потому что она, вероятно, не позаботится снова проверить, прежде чем она определит, что ее кешированная версия устарела. Вам просто нужно отправить письмо с уличной почтой всем вашим пользователям, сообщившим им, чтобы нажать ctrl + f5:)
Есть вероятность, что браузер, по крайней мере, попытается выполнить запрос HEAD, чтобы проверить измененную метку времени, прежде чем она выполнит свою кешированную версию. В этом случае вам помогут следующие.
Браузеры обсуждают свой контент с вашего веб-сервера с использованием стандартных заголовков HTTP. Если вы хотите сказать браузеру не кэшировать файл, вы должны отправить соответствующие заголовки HTTP. Если вы хотите сделать это в PHP, вы можете использовать функцию header
для отправки соответствующих HTTP-заголовков в браузер:
header('Cache-Control: no-cache');
header('Pragma: no-cache');
Если это нужно сделать через HTML, вы можете сделать следующее в своем заголовке страницы:
<meta http-equiv="Expires" content="Tue, 01 Jan 1995 12:12:12 GMT">
<meta http-equiv="Pragma" content="no-cache">
Вы не можете быть уверены, что браузер выполнит ваш запрос, чтобы он не кэшировал страницу. Есть некоторые другие вещи, такие как eTags и еще что-то, но, честно говоря, я не думаю, что вам поможет, если страница уже кэширована.
UPDATE
Из спецификации HTTP/1.1 на Каширование ответов:
Если не существует ни проверки валидатора кеша, ни явного времени истечения связанный с ответом, мы не ожидаем, что он будет кэшироваться, но некоторые тайники МОГУТ нарушать это ожидание (например, когда мало или нет возможности подключения к сети).