Как принудительно обновить без кеша в Google Chrome? [Дубликат]

307

На этот вопрос уже есть ответ здесь:

Есть ли в Chrome эквивалент обновления Firefox Ctrl + F5? Кажется, я не могу его найти.

Я изменил свой Gravatar прошлой ночью, и я могу видеть новый в Firefox после обновления Ctrl + F5, но Chrome, кажется, упорно висит на старой Gravatar. Полагаю, я мог бы вручную очистить кеш, но если для этого есть клавиатурная команда, я бы хотел знать, что это такое (так как это было бы полезно и для веб-разработки).

койка
источник
18
CTR + R, затем CTRL + F5, один или два раза - обычно решает проблему. Или отключите кэш в Инструментах разработчика -> Sprog (справа) -> Сеть - Отключить кэш. Перезагрузите страницу и попробуйте отключить это.
Петр Кула
1
В Chrome добавлена ​​отличная новая функция для принудительного обновления - superuser.com/a/512833/92862
Coops

Ответы:

198

Документация Chrome гласит, что Ctrl+ F5или Shift+ F5должны выполнить «Перезагрузка текущей страницы, игнорируя кэшированное содержимое».

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

[Существующий журнал ошибок по этой проблеме] Закрытый как дубликат, проблема остается:

[ Выпуск: 94090 ]

Уильям Хилсум
источник
1
Похоже, это может быть частично вина Граватара. В шапке для моего изображения они отправляют Last-Modified: Fri, 20 Jun 2008 12:25:23 GMT. Я думаю, что это либо дата, на которую я загрузил свой старый Gravatar, либо дата, на которую я подписался на Gravatar. Браузер, должно быть, видит это и думает: «О, этот новый файл имеет ту же дату последнего изменения, так что я все еще буду использовать кэшированный». Это ошибка, если Chrome делает это в кэше, игнорирующем обновление, но это ошибка для Gravatar, которая также отправляет неверную последнюю модификацию. Я связался с обеими сторонами. :)
Кип
4
Я загружаю скрипты асинхронно из javascript, и кажется, что Chrome продолжает использовать кэшированные версии даже после ctrl-f5 и т. Д. Очистка кэша работает. Но другое решение - открыть окно инкогнито (ctrl-shift-n), так как в режиме инкогнито не будет использоваться кеш.
Таурен
3
Ха-ха Chrome супер-кешируется, единственный способ, которым я могу его преодолеть, это нажать Shift + F5 как минимум два раза (правда).
Халил Озгюр
1
Команда Chrome должна быть смущена такой ошибкой, находящейся в очереди ошибок более 2 лет. Я очень разочарован.
Брайан Вебстер
2
Определенно не работает. Хром может просто так плохо сосать несколько раз.
иконоборчество
200

В открытых инструментах разработчика ( Ctrl+ Shft+ Iили + + I):

  1. Выберите вкладку Сеть
  2. Установите флажок «Отключить кэш» .
  3. НЕ ЗАКРЫВАЙТЕ инструменты разработчика - в противном случае кэш будет снова включен.

введите описание изображения здесь

Крис
источник
Не работает для меня, пришлось использовать инкогнито.
Энтони Стаббс
4
Но почему нет клавиши быстрого вызова, чтобы вызвать это!
Coops
7
Обратите внимание, что кеш отключен только тогда, когда инструменты разработчика открыты. Если вы закроете его, ваш кеш снова активен.
Icode4food
Даже с активированным флажком « Отключить кэш» и открытыми инструментами разработчика, похоже, между F5 и Shift + F5 все еще есть разница. Ajax-вызов на моей веб-странице ведет себя по-разному, в зависимости от вида обновления, и я пока не понимаю, почему.
Стефан
3
В более новых инструментах разработчика (которые также могут запускаться с помощью F12) параметр «Отключить кэш» можно найти на вкладке «Сеть».
НАРЭ
98

На Mac это Shift + Command + R или удерживание Shift при нажатии кнопки перезагрузки (в отличие от Command + R или обычного щелчка для регулярного обновления).

Еще несколько деталей:

Для Shift + Command + R кеш просто игнорируется, а ресурсы запрашиваются, как будто кеша не существует.

Для Command + R, Chrome будет выдавать If-Modified-Sinceили Etagзапросы к веб - серверу, даже для вещей, которые на самом деле кэшируются . Для большинства, если не для всего контента, сервер должен затем ответить 304 Not Modified. Это верно для большинства, если не для всех современных браузеров.

Похоже, что единственный способ заставить кеш полагаться (даже если браузер даже не запрашивает возможные изменения) - это щелкнуть ссылку на веб-странице, перейти по ссылке в закладке или перейти в строку адреса URL и нажать «Вернуться» ( Command + L, Return).

Однако: давняя известная проблема в Chrome, Chrome Forced Refresh не игнорирует кэш (и более поздняя перезагрузка / обновление не обновляет ), или, возможно, фактически функция в WebKit, динамически вставленные подресурсы не проходят повторную проверку, даже если содержащийся документ перезагружается , делает Chrome не очищать ВСЕ связанные кеши при использовании вышеуказанных методов. Разработчик Chromium объясняет :

Вкладка сети инструментов разработчика показывает водопад всех ресурсов по мере их загрузки. С правой стороны есть две вертикальные линии ... одна из них помечена надписью «Загрузка события запущена». Все, что загружается после этой точки, официально не является частью страницы (страница может продолжать выдавать запросы в течение нескольких часов) [...], поэтому она НЕ будет «обновляться» при любой комбинации f5. Это по замыслу.
[...]
Кэширование [любого ресурса до и после строки «Загрузка события запущено»] определяется HTTP-заголовками ответа, а не временем отправки запроса.

Также обратите внимание на твит @ ChromiumDev :

Отключить кэш в Chrome DevTools делает недействительным дисковый кеш (отлично подходит для разработки!), Но ... только тогда, когда devtools виден.

Арьян
источник
Спасибо за отличный подробный ответ. Возможно, слишком технически для аудитории, но я очень ценю это.
Шолзингер
Command-Shift-R не работает в текущей стабильной Chrome.
Оливье
Кажется, на моем Mac все работает нормально, @olouv. Вы заглянули на вкладку Сеть инструмента разработчика? (Правда, на этом самом сайте есть несколько ресурсов, для которых Chrome по-прежнему выдает If-Modified-Sinceзапрос, но эти ресурсы запрашиваются JavaScript, а не анализатором HTML. Кроме того, поскольку кэширование самой страницы установлено на одну минуту, может быть, небольшие различия в серверном и локальном времени тоже могут испортить?)
Arjan
ВНИМАНИЕ , обратите внимание на двухлетнюю, но все еще актуальную ошибку в Chrome: Chrome Forced Refresh не игнорирует кэш .
Арджан
22
  1. Потяните консоль
  2. Нажмите в правом нижнем углу, чтобы значок шестеренки
  3. Отметьте [General> Disable cache]
  4. Перезагрузить страницу (однако)!
  5. Держите инструменты разработчика открытыми (ОБНОВЛЕНИЕ)

sobi3ch
источник
Отлично, даже после того, как я закрыл devtool, он всегда очищал кеш.
diyism
15

Вопрос немного староват, но в последней версии Chrome

  • Откройте с Developer toolsпомощью F12или Ctrl+ Shift+I
  • Щелкните правой кнопкой мыши кнопку «Обновить» и выберите « Очистить кэш» и «Жесткая перезагрузка».

Это обойдет кеш и полностью перезагрузит страницу.

Документ говорит Ctrl+ F5или Shift+, F5но, к сожалению, на сегодняшний день ошибка все еще не решена :-(

Кольцо Ø
источник
1
Как в стороне: это только для Windows. (И я читал, что он доступен только тогда, когда инструменты разработчика открыты?)
Arjan
2
Работает только тогда, когда инструменты разработчика открыты, как вы говорите, Arjan.
mgkrebbs
Вы также можете удерживать SHIFT, нажимая кнопку обновления
Bolli
9

У меня есть файлы (изображения и полные HTML-страницы) на сервере, которые обновляются, и никакая комбинация клавиш в chrome, кажется, не заставляет их извлекать.

Я полагаюсь на режим инкогнито chrome - CTRL-SHIFT-N - когда мне нужно принудительно обновить.

Обратите внимание, что CTRL-R или CTRL-F5 в окне инкогнито тоже не работают. Вы должны закрыть и снова открыть окно инкогнито - следовательно, я полагаюсь на ярлыки - CTRL-W, чтобы закрыть, CTRL-SHIFT-N, чтобы открыть.

Дэниэл Гилл
источник
Вы имеете в виду «открыть вкладку инкогнито», а не окно, я полагаю?
mgol
1
Интересно, что для меня CTRL-SHIFT-N открывает новое окно, а не просто вкладку - разве это не всегда так?
Даниэль Гилл
6

Определенно не существует простого способа сделать это в Chrome, как в других браузерах. В документации может быть сказано, что CTRL + F5 или SHIFT + F5 должны перезагрузить и игнорировать кеш, но это просто не так. У меня есть флэш-слайд-шоу, в котором хранятся настройки / конфигурации в XML-файле, и после обновления XML-файла Chrome по-прежнему загружает кэшированную версию, если я не произвожу очистку кэша. При обновлении слайд-шоу мне всегда приходится запускать другой браузер, поэтому мне не нужно все время очищать кэш Chrome.

jwalker55
источник
5
Flash-кеш - это нечто совершенно отличное от Chrome.
Джошуа
@ Joshua Если этот парень не утверждает, что он работает в других браузерах, но не в Chrome. Не забывайте, что Chrome поставляется с собственной версией Flash плеера.
Камило Мартин
@CamiloMartin ... который также имеет свой отдельный кеш. Подождите ... Вы серьезно ответили на сообщение, которому более 2 лет? Тьфу. Я взял наживку.
Джошуа
@ Джошуа О, ты прав, я не понял :)
Камило Мартин
4

Ctrl - Shift - Delete позволит вам удалить кеш за предыдущий час. Это гарантирует, что в следующий раз, когда вы перезагрузите сайт, он будет свежим.

Дж Барон
источник
4

Определенно ошибка в Chrome - это также изображения, которые должны быть изменены, но вместо этого используется старое изображение, даже после многократного нажатия Ctrl+ F5.

Я пытался изменить свой логотип Служб Google, но единственный способ изменить его в Gmail - это использовать режим инкогнито или очистить весь кэш. Ctrl+ F5сохраняет старый логотип.

Гейб
источник
3

Я сделал это: Щелкните правой кнопкой мыши FRAME (это было не синхронизировано), и SHIFT нажал на опцию «Обновить кадр». Кадр затем обновился правильно.

Кирк
источник
Не работал для меня
Coops
3

Чтобы очистить явно указанный кеш приложения, перейдите в chrome://appcache-internals/Chrome и удалите кеш для определенных веб-сайтов.

Лорд лох
источник