requirejs неправильно работает с кешем при загрузке из функции обратного вызова

99
8

Мой запрос ресурса javascript (/myscript.js) содержит в заголовках ответов следующее.

Cache-Control   must-revalidate
Content-Length 15
Content-Type text/javascript;charset=UTF-8
Date Tue, 14 Oct 2014 11:32:01 GMT
Expires Mon, 14 Oct 2024 10:54:04 GMT
Last-Modified Thu, 14 Oct 2004 10:54:04 GMT
Server Apache-Coyote/1.1

Я устанавливаю Expires в дату, которая находится в глубоком будущем, поэтому я ожидаю, что любые другие запросы /myscript.js должны быть взяты из кеша браузера.

Я запрашиваю /myscript.js с помощью requirejs:

require([('/myscript.js']);

Я также отмечаю, что все манипуляции с кешем (F5 и Ctrl + F5) работают с этим.

F5 вызывает запрос If-Modified-Since.

Ctrl + F5 очищает кеш и перезагружает скрипт.

Но если я поместил этот код в некоторый callback (например, jquery ready или setTimeout):

$(document).ready(function(){
require([('/myscript.js']);
});

или

setTimeout(function(){
require([('/myscript.js']);
},1);

все идет не так. Даже Ctrl + F5 не очищает кеш, и этот скрипт берется из кеша.

В панели "Сеть" моего браузера я вижу следующее

Firefox (F5) Firefox

Firefox (Ctrl + F5) enter image description here

Chrome (F5) enter image description here

Chrome (Ctrl + F5) enter image description here

Пожалуйста, объясните, почему Ctrl + F5 не очищает кеш в этой ситуации?

спросил(а) 2014-10-14T14:53:00+04:00 6 лет назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема