Принуждение истечения кэша из файла JavaScript

У меня есть старая версия файла JS, кэшируемого на браузерах пользователей с набором истечения к 10 годам (с тех пор, я изучил, как установить, истекает заголовки правильно на моем веб-сервере). Я сделал обновления файла JS, и я хочу, чтобы мои пользователи извлекли выгоду от них.

  • Есть ли какой-либо способ, которым мой веб-сервер может вынудить браузеры пользователей очистить кэш для этого файла, за исключением обслуживания по-другому именованного файла JS?
  • В будущем, если истекает, заголовки не установлены правильно (паранойя), мой файл JS может автоматически истечь сам и вызвать перезагрузку после, скажем, день передал, так как это кэшировалось?

Править: Идеально я хочу решить эту проблему, не изменяя разметку HTML на странице, которая размещает сценарий.

9
задан BartoszKP 23 January 2014 в 20:32
поделиться

2 ответа

Короче ... нет.

Вы можете добавить что-нибудь в конец исходного адреса тега скрипта. Браузеры будут рассматривать этот файл как файл, отличный от того, который они уже кэшировали.

<script src="/js/something.js?version=2"></script>

Не уверен насчет других вариантов.

19
ответ дан 4 December 2019 в 08:15
поделиться

Как небольшой поставщик SaaS, мы часто задаем этот вопрос потенциальным клиентам. Мы решили эту проблему, сделав наш продукт открытым. Это может быть вариант не подходит для многих, но был лучшим для нас.

-121--3409488-

Короче... нет.

Можно добавить что-либо в конец исходного адреса тэга сценария. Браузеры будут рассматривать этот файл как файл, отличный от файла, кэшированного в данный момент.

<script src="/js/something.js?version=2"></script>

Не уверен в других ваших вариантах.

-121--3246024-

В URL-адреса можно добавить фиктивный параметр

<script src='oldscriptname.js?foo=bar'></script>

[e: f; b]

Основная проблема заключается в том, что если вы настроите истечение срока действия с помощью простого заголовка «Expires», то браузеры, которые кэшируют файл, даже не потрудятся связаться с вами по этому поводу. Даже если у скрипта был способ взломать браузер в голове и очистить кэш, старый сценарий не делает этого , так что у вас нет возможности передать эту функциональность клиентам.

1
ответ дан 4 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

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