Кеш пам’яті Chrome проти кеш-пам'яті диска


96

Мене цікавить кеш пам'яті chrome проти кеш-пам'яті диска? Я використовую веб-пакет, плагін із загальними фрагментами та генерую всі свої файли за допомогою chunkhash.

Чим відрізняється пам’ять від кешу диска. Коли я перезавантажую свою сторінку, деякі файли завантажуються з кешу пам'яті, а деякі - з кешу диска (bundle.js та image.jpg з кешу пам'яті та css з кешу диска). Інколи буває інакше. Чи можемо ми це контролювати, вибирати, що звідки завантажується? Здається, кеш пам’яті швидший за кеш диска.


1
Привіт Ігоре, це спричинило проблеми із завантаженням веб-пакета? Як ви це вирішили?
Насолоджуйтесь

1
Проблем не було. Це лише функціональність кешу браузера, яка кешує файли пакету веб-пакетів.
Ігор-Вук

Привіт Ігоре, я бачу, що це проблема, коли деякі збірні файли завантажуються з диска, а деякі з пам'яті. Коли це трапляється, виникає помилка JSONP. Це трапляється лише в рідкісних випадках.
Насолоджуйтесь

Відповіді:


74

Як говорили їх імена:

"Кеш пам'яті" зберігає та завантажує ресурси до та з пам'яті (ОЗУ). Отже, це набагато швидше, але це непостійно. Вміст доступний, поки ви не закриєте браузер.

"Дисковий кеш" постійний. Кешовані ресурси зберігаються та завантажуються на диск і з нього.

Простий тест: Відкрийте Chrome Developer Tools / Network. Перезавантажте сторінку кілька разів. Стовпець таблиці "Розмір" повідомляє, що деякі файли завантажуються "з кешу пам'яті". Тепер закрийте браузер, знову відкрийте Developer Tools / Network і завантажте цю сторінку знову. Усі кешовані файли завантажуються "з кешу диска", оскільки кеш пам'яті порожній.


4
Ну, я не знав, що це все так просто.
Файзан Анвер Алі Рупані

27
як браузер визначає, які активи зберігати в кеш-пам'яті проти кеш-пам'яті диска?
chharvey

10
чи можемо ми налаштувати, що слід кешувати в кеш-пам'яті?
Ігор-Вук

1
У моєму кутовому додатку є кілька символів, які завантажуються з диска, коли я запускаю його локально, у робочих тезах файли взагалі не кешуються. Тільки кеш з пам'яті працює у виробничому середовищі. Ви, хлопці, знаєте, що може спричинити це?
Рафаель Андраде

@RafaelAndrade Майте на увазі, що angular забезпечує безліч середовищ (у src / environment / *. Ts). environment.prod.ts визначає ваше виробниче середовище побудови там, де environment.ts визначає місцеве середовище розвитку. У місцевій розробці env вам в основному потрібні відсутні кешовані файли, щоб ваші локальні зміни завжди застосовувались до вашої програми.
Рувен,

14

Chrome реалізує кеші на багатьох рівнях абстракції. В основі лежить HTTP (Browser) кеш - серверна база для інших механізмів кешування. Зазвичай кеші можна розділити на:

  • HTTP кеш
  • Кеші службовців
  • Блимає кеш

HTTP кеш

Кожен запит, зроблений через мережу, проксі-сервер HTTP-кешу, що дотримується RFC . При першому запиті кеш перезаписується. Ресурси вводяться за адресою джерела.

Кеш службових служб

Для витонченої роботи з несправностями мережевого підключення ви можете скористатися Service Workers . Кеш-пам’ять та пам’ять кешу знову братимуться з диска.

Блимаючий кеш

Blink використовує Http Cache як бекенд у двох режимах створення - в пам'яті та простому (файлова система). Який із них використовуватиметься, залежить від глобально встановленого ліміту кеш-пам’яті, скільки пам'яті вони можуть зайняти. Також поточний кеш візуалізації отримує найбільшу частку. Кешоване - це шрифти, зображення та сценарії. Якщо використання глобальної пам’яті досягає певного порогового значення, то використовується серверна база файлової системи.

Форсування в кеш пам'яті

Якщо ви хочете, щоб ваші файли обслуговувалися з пам'яті, що перевизначає механізм за замовчуванням, ви можете застосувати власний Service Worker. За допомогою File Api ресурси можна читати та зберігати в об'єкті в пам'яті. Тоді перевизначення події вибору придушить читання мережі та файлів із вмістом, що подається з цього глобального об'єкта.

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