Chrome clear cache для веб-сайта [dубликат]

Нет никакого встроенного способа. По сути, если вы решите пойти без jQuery, вы будете копировать баггированную версию этого кода.

76
задан Chris Lercher 8 June 2010 в 08:16
поделиться

2 ответа

Я бы использовал следующие настройки:

  1. Cache-Control: max-age = 31556926 - Представления могут кэшироваться любым кешем. Кэшированное представление должно считаться свежим в течение 1 года. Чтобы пометить ответ как «никогда не истекает», сервер происхождения отправляет дату Expires примерно один год с момента отправки ответа. Серверы HTTP / 1.1 НЕ ДОЛЖНЫ отправлять . Истекает даты более одного года в будущем.
  2. Cache-Control: no-cache - представления могут кэшироваться любым кешем. Но кеши должны отправить запрос серверу происхождения для проверки перед выпуском кешированной копии.
  3. Cache-Control: no-store - Кэши не должны кэшировать представление при любых условиях.

Для получения дополнительной информации см. учебное пособие по методу Марк Ноттингема .

84
ответ дан Gumbo 16 August 2018 в 04:10
поделиться
  • 1
    @Gumbo: Я почти уверен, что мне нужно установить public , когда я хочу, чтобы Firefox 3+ кэшировал общедоступные файлы на диск при использовании HTTPS: stackoverflow.com/ вопросы / 174348 / & hellip; – Chris Lercher 9 June 2010 в 08:50
  • 2
    Некоторые браузеры, такие как IE, начинают рассматривать Cache-Control: no-cache, как если бы он не был в магазине. Это, по общему признанию, не соответствует RFC, но это сознательно сделано для «исправления». ошибка, выполняемая MANY из-за отсутствия кеша, чтобы предотвратить хранение конфиденциальных данных на незашифрованном диске. – AviD 9 June 2010 в 09:15
  • 3
    @chris_l, я произошел по этой ссылке: palisade.plynt.com/issues/2008Jul/cache-control-attributes . Я не помню, как работали предыдущие версии, хотя я думаю, что IE7 тоже это сделал. – AviD 12 June 2010 в 20:03
  • 4
    Кроме того, Firefox больше не требует, чтобы PUBLIC в Cache-Control кэшировал ресурсы HTTPS. Но ваш лучший выбор в целом - это просто проверить свой сайт во время просмотра трафика, например. с Фиддлером. – EricLaw 5 April 2011 в 15:20
  • 5
    Установка значения контроля кеша в 100 лет не рекомендуется. Во-первых, спецификация рекомендует максимум 1 год. Во-вторых, любое значение более 68 лет приводит к немедленному истечению срока действия IE8 и ниже: blogs.msdn.com/b/ieinternals/archive/2010/01/26/… – EricLaw 5 April 2011 в 15:22

Случаи один и два являются фактически одним и тем же сценарием. Вы должны установить Cache-Control: public , а затем сгенерировать URL-адрес, содержащий номер сборки / версию сайта, чтобы у вас были непреложные ресурсы, которые могут потенциально длиться вечно. Вы также хотите установить заголовок Expires в год или более в будущем, чтобы клиенту не нужно было выдавать проверку свежести.

В случае 3 вы могли бы все для максимальной гибкости:

  «Cache-Control», «no-cache, must-revalidate» «Expires», 0 «Pragma», «no-cache»  [  ! d5]                   
-2
ответ дан Paul Bellora 16 August 2018 в 04:10
поделиться
  • 1
    Различные URL-адреса для новых сборок, вероятно, не являются опцией: a) Это заставит клиента повторно загружать файлы, сохраняемые навсегда. Они получают уникальные имена, чтобы избежать этого. b) Основной URL-адрес моего сайта должен быть просто https://www.example.com/ c) Я хочу, чтобы закладки всегда ссылались на самую новую версию моего сайта (представьте, закладки для stackoverflow вопрос будет содержать номер сборки сайта). – Chris Lercher 8 June 2010 в 07:21
  • 2
    Привет Крис. Этот подход обычно используется для ресурсов CSS и JS, а не документов. Я согласен, что это неприменимо к идентификаторам документа, и в этом случае вам нужно просто установить общий контроль кеша public, Last-Modified и etag в заголовках, которые будут каждый раз проверять свежесть, и только 304 будет отправлено обратно, если изменений нет начиная с последней загрузки. Кроме того, вы можете загружать фактическое содержимое динамической страницы на каждой странице через JS, чтобы сохранить URL-адрес, сохраняя при этом эффективное кэширование. – Andrew L 9 June 2010 в 02:09
  • 3
    Да, это в значительной степени способ, GWT справляется с этим для меня: Мой index.html (иногда меняющийся) включает mymodule.nocache.js (иногда меняется), который автоматически включает в себя правильные файлы с вечным кэшированием (большие части js, управляемые GWT пакеты изображений, ...) Единственное, что мне остается, - установить правильные заголовки HTTP для каждого типа. Я хочу свести эти заголовки к минимуму, так как они составляют большую часть объема передачи. Так мне нужно, например. как Last-Modified , так и ETag и т. д.? – Chris Lercher 9 June 2010 в 09:00
  • 4
    & Quot; Истекает & Quot; на самом деле должна быть дата, а не число 0. Оно должно иметь то же значение, что и «Дата». заголовок. См. [D0] mnot.net/cache_docs – Luke Hutchison 30 December 2014 в 15:04
Другие вопросы по тегам:

Похожие вопросы: