Я хочу, чтобы один файл javascript был кэширован в течение 1 часа и использовал приведенный ниже код для достижения этого. По какой-то причине (возможно, потому, что этот js-файл загружается асинхронно), функции в этом js-файле не выполняются в IE8, когда файл js находится в кеше. Поэтому я хочу кэшировать файл js во всех браузерах, кроме IE. Могу ли я установить заголовок, чтобы файл js не кэшировал только для браузеров IE?файлы кеширования кросс-браузера
try {
response.setHeader("Cache-Control", "max-age="+AIMConstants.CACHE_CONTROL_TIME_PERIOD);
} catch (Exception e) {
logger.info("Error in setting the cache control");
e.printStackTrace();
}
Примечание. Файл js загружается несколько раз на страницу посредством вызова getScript. Поэтому, если я применяю условную логику только для IE, чтобы извлечь этот файл js, добавив переменную в файл, файл может быть загружен несколько раз, поэтому я не добавляю случайную переменную на стороне клиента, чтобы получить новую копию файла javascript. Я хочу разрешить это, используя директивы заголовка. Также приветствуется любое другое решение, включающее javascript.
UPDATE: Я добавил Vary: *, чтобы предотвратить кэширование js-файла, и когда я делаю это, все браузеры берут новую копию js-файла. Я хочу, чтобы только IE получал новую копию js-файла каждый раз. Все остальные браузеры могут кэшировать js-файл.
Добавьте ту же «случайную» переменную ко всем вызовам GetScript на странице. Затем он будет кэшироваться внутри страницы, но не через загрузку страниц. –