Яка різниця між "Нормальним перезавантаженням", "Жорстким перезавантаженням" та "Порожнім кешем та жорстким перезавантаженням" у Chrome?


343

Нещодавно я відкрив цю нову функцію в Chrome:

параметри перезавантаження

Я можу виявити різницю між варіантом 1 і варіантом 3, і цей варіант 2, ймовірно, є між ними, але я не можу знайти більш точної інформації ніде.

Хтось знає точну поведінку кожного з 3 варіантів?


17
Чи можете ви пояснити "цю особливість"? Конкретно: як ви отримуєте доступ до нього? Я спробував всі види клацання правою кнопкою миші, контрольні клацання, ... але не зміг її отримати. Що це за версія?
Йоахім Зауер

83
@JoachimSauer Ха-ха, це мій маленький секрет ... Серйозно це надзвичайно добре приховано: потрібно натиснути кнопку оновлення, не відпускаючи її негайно, поки консоль розробника активна samuelrossille.com/home/blog-chrome-reload-options.html
Samuel Россіль

11
Також з'являється клацанням правою кнопкою миші на значку перезавантаження (поки Devtools відкритий)
Costa

7
Чи працює це для OSX Chrome? Я не можу відкрити його через інструменти Dev і натиснути правою кнопкою миші / натиснути + утримувати
nitsujri

6
Я щойно знайшов ці риси у 2016 році випадково ...
Едвін Іп

Відповіді:


439

Нормальне перезавантаження

Те саме, що натискання F5. Це використовує кеш, але оновить усе під час завантаження сторінки, шукаючи відповіді "304 не змінено". Якщо браузер може уникнути повторного завантаження кешованих файлів JavaScript, зображень, текстових файлів тощо, це станеться.


Важке перезавантаження

Не використовуйте нічого в кеш-пам'яті під час оформлення запиту. (що дорівнює SHIFT+ F5Не потрібно відкривати консоль розробника) Примушуйте браузер повторно завантажувати кожен файл JavaScript, зображення, текстовий файл тощо.


Порожній кеш і жорстке перезавантаження

Очевидно, що якщо кеш порожній, тоді доведеться зробити важке перезавантаження. Це знову змусить браузер повторно завантажити все. Однак якщо сторінка виконує будь-які фактичні завантаження через JavaScript, які не були частиною завантаження сторінки, то вони все одно можуть використовувати кеш, саме в цьому допомагає спорожнення кеша, оскільки це гарантує, що навіть ці не будуть використовувати кешовані файли.


Примітка . Ця функція доступна лише тоді, коли інструменти для розробників відкриті.


49
Хто - небудь знає , якщо третій варіант просто спустошує кеш для поточного сайту, проти спустошення всього кешу?
Грінн

10
@Grinn: Насправді зараз, коли я думаю про це, це, мабуть, весь кеш. Сенс цієї функції полягає в тому, щоб очистити фактичні завантаження, які не обмежуються лише одним "сайтом".
Ендрю Расмуссен

13
Мені незрозуміло, що вважається "after-the-fact download via Javascript"? Хтось може навести конкретний приклад?
Коста

4
@Costa Ви можете завантажити речі, які спочатку не вказано у DOM. Наприклад, додавши новий тег <script> у свій DOM або використовуючи RequireJS тощо. Будь-яка бібліотека на базі AMD (наприклад, RequireJS) в основному ліниво завантажує свої сценарії. У такому випадку вам доведеться спорожнити кеш, щоб переконатися, що справді все перезавантажується.
Домі

16
Слід зазначити, що це працює лише в тому випадку, якщо інструменти для розробників відкриті (F12) Було б добре, якби це налаштування, яке завжди може бути доступним, незалежно від того, відкриті чи ні інструменти розробки.
сканліфф

4

Це також працює в Mac OS X. Відкрийте інструменти для розробників, а потім, натисніть кнопку перезавантаження, або 1. вторинним клацанням (клацніть правою кнопкою миші правою рукою миші), або 2. довгим клацанням, відомим також довгим натисканням, щоб переглянути меню.

На додаток до цієї відповіді , жорстке перезавантаження часто призводить до оновлення проксі-серверів, мереж доставки вмісту та інших віддалених кеш-пам'яток.

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


"Жорстке перезавантаження часто призводить до оновлення проксі-серверів, мереж доставки вмісту та інших віддалених кешів." → Чи можете ви створити резервну копію? Чи є у вас цитати, що пояснюють, чому це було так? Я б очікував, що Hard Reload просто перезавантажить весь локальний кеш, і не матиме додаткового ефекту для віддалених серверів.
Denilson Sá Maia

Я думаю, що браузери надсилають Cache-Control: no-cacheзаголовок. squid-web-proxy-cache.1019090.n4.nabble.com/… Чи ваш?
декоркінг

1
Я зробив деякі випробування ... Перехід до URL або з допомогою Normal Reload послав 3 заголовки кешу , пов'язані з : Cache-Control: max-age=0, If-Modified-Since, If-None-Match. Однак, виконуючи Hard Reload (з або без спорожнення кешу), було надіслано лише 2 заголовки, пов’язані з кешем: Cache-Control: no-cacheі Pragma: no-cache. Так, так, браузер дійсно надсилає заголовок із запитом серверів про свіжу версію; Тоді від серверів (у тому числі проксі) залежить змінити поведінку на основі цього.
Denilson Sá Maia

Чудово! Ви можете відредагувати це в моїй відповіді або написати свою власну відповідь. @ DenilsonSáMaia
dcorking

0

Наступний метод дозволяє очистити кеш-пам'ять лише для проблемної URL-адреси. Це допомогло мені, коли я застряг із http в https кеша переспрямування.

  1. Відкрийте інструменти для розробників Chrome у Windows F12
  2. Preserve logПеред перенаправленням встановіть прапорець, щоб зберегти журнал
  3. Клацніть правою кнопкою миші переспрямований URL і Clear browser cache

Це очистить лише проблемний кеш, не впливаючи на звичайний кеш.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.