Как я могу сделать недействительной страницу в кеше браузера со стороны клиента? - PullRequest
4 голосов
/ 19 августа 2009

Мне нужен клиент (использующий javascript), чтобы сделать недействительной страницу, которая у него есть, и по сути получить новую версию?

Я думал, что смогу сделать все это с заголовками: Делать недействительными кэшированный контент, If-Modified Headers?

Если нет способа заставить браузер обновить текущую кэшированную версию, не делая новый запрос (через новый URL) ... так, чтобы тот же исходный запрос URL мог использоваться для просмотра обновленного содержимого?

Ответы [ 4 ]

7 голосов
/ 19 августа 2009

Если вы хотите перезагрузить текущую страницу, вы можете сделать:

location.reload(true);

В противном случае «традиционный» способ - добавить случайную строку запроса в конец

'...?rnd=' + Math.random();
6 голосов
/ 19 августа 2009

Вы не можете сделать это с помощью javascript, чтобы решить вашу проблему или использовать метод POST вместо GET или использовать трюк со случайным параметром nocache :

Если вам нужна дополнительная информация, смотрите: Можно ли кешировать POST-методы в HTTP?

3 голосов
/ 19 августа 2009

Когда вы ссылаетесь на страницу, добавьте случайную переменную в конец. Например:

document.location.href = 'mypage.html?randomVar=454068934';

Это обеспечит не кэшированную версию. Я рекомендую использовать сгенерированные javascript направляющие.

1 голос
/ 19 августа 2009

что я сделал, это передал случайный параметр в URL. То есть, если мне нужно получить products.php, я вызываю это с products.php? rand = 23443545. Таким образом, кеш не мешает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...