Что такое Cache Busting

Ответ

Cache Busting — это техника для обхода кеширования старых версий файлов (CSS, JS, изображений) браузером или CDN.

Основные способы:

  1. Query параметр: style.css?v=1.2.3
  2. Переименование файла: style.abc123.css
  3. Хеш в имени: style.a1b2c3.css (часто используется в сборщиках)

Пример с Webpack:

output: {
  filename: '[name].[contenthash].js',
}

Преимущества:

  • Принудительное обновление кеша при изменениях
  • Не требует ручного управления версиями
  • Позволяет долго кешировать неизменяемые файлы

Ответ 18+ 🔞

А, ну вот, блядь, опять этот ваш кеш, сука, мозги выносит! Ты обновил файлик, а у пользователя в браузере та же старая хуйня лежит, будто ничего и не менял. Пиздец, да? Это и есть Cache Busting, техника, чтобы этот старый хлам в кеше нахуй послать и заставить браузер свежую версию скачать.

Как это делается, спросишь? Да элементарно, ёпта!

  1. Query-параметр, примитивнейший способ. Берёшь свой style.css и прикручиваешь к нему хуйню вроде ?v=1.2.3. Браузер видит новый URL и думает: "О, новый файл! Надо качать!" Хотя файл-то тот же, просто версию сменил. Дешёво и сердито, но не всегда надёжно, некоторые прокси могут этот параметр проигнорить, пидарасы.

  2. Переименование файла. Вообще в лоб, блядь. style.css стал style.abc123.css. Вот тут уж точно все поймут, что файл новый. Но возиться каждый раз — терпения ноль ебать.

  3. Хеш в имени — красота, ёбана! Это когда в самё имя файла встраивается уникальная строка, которая меняется только если меняется содержимое файла. Типа style.a1b2c3.css. Идеально, сука! Файл не менялся — хеш тот же, и его можно кешировать хоть до скончания веков. Изменил хоть запятую — хеш новый, и браузер качает обновку. Автоматика, блядь!

Вот смотри, как в том самом Webpack'е это выглядит, гениально просто:

output: {
  filename: '[name].[contenthash].js',
}

Видишь эту магию [contenthash]? Сборщик сам, хитрая жопа, посчитает хеш от содержимого и подставит его в имя. Сделал правку — получил новый бандл. Не сделал — хеш старый, и у пользователей всё летает из кеша.

Итоговые плюсы, блядь:

  • Кеш насильно обновляется, когда нам надо. Никаких "почисти кеш, братан".
  • Версииями руками не ебёшься, всё автоматом.
  • А главное — неизменяемые файлы (те, у которых хеш в имени не поменялся) можно кешировать навечно, овердохуища лет, и страница будет грузиться мгновенно!

Вот так вот, нехитрая, но пиздато важная штука.