2016-09-10 2 views
9

Вчера у нас не было власти дома, поэтому нет Интернета. Поэтому я предположил, что я не смог бы иметь мой веб-приложение работает локально, так как в конце «index.html» У меня есть:Понимание кэширования?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script> 
     window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>') 
</script> 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/masonry/3.1.5/masonry.pkgd.min.js"></script> 
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/123941/imagesLoaded.js"></script> 
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/123941/masonry.js"></script> 

Однако, это было не так, то это было бы работайте плавно. Поэтому я догадался, что браузер запомнил последний раз, когда он загрузил эти js-файлы.

Когда я перезагрузил свое приложение wep, но он не смог загрузить файлы js, так как не было подключения к Интернету. Такое поведение повторяется снова и снова.

В обоих случаях было бы не в состоянии загрузить:

<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans+Caption:400,700"> 

, но это не критическая ошибка. Обратите внимание, что из был локально в моем файле проекта, поэтому он не имеет значения.

Я пытаюсь понять, почему, какие-то мысли?

Я использую Версия 52.0.2743.116 (64-разрядная версия) в MacBook Pro El Capitan.


Mine: Браузер, используемый кэшированные версии файлов JS, но даже на нормальном уровне Reload он будет пытаться повторно загрузить их ..

ответ

3

Некоторые внешние файлы не имеют срока действия далеко в будущем дата, установленная в заголовке HTTP.

Вы заметите, когда я загрузить страницу с шрифта Google, вот заголовок ответа:

Google Font API

Access-Control-Allow-Origin: * 
Cache-Control: private, max-age=86400 
Content-Encoding: gzip 
Content-Type: text/css; charset=utf-8 
Date: Sat, 10 Sep 2016 04:55:29 GMT 
Expires: Sat, 10 Sep 2016 04:55:29 GMT 
Link: <http://fonts.gstatic.com>; rel=preconnect; crossorigin 
Server: ESF 
Timing-Allow-Origin: * 
Transfer-Encoding: chunked 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 

Вы заметите, что здесь Google подан этот шрифт с мгновенным истечением. (я получил доступ к файлу по адресу Sat, 10 Sep 2016 04:55:29 GMT, и он истекает в это же время). Вероятно, поэтому он никогда не загружался в первую очередь.

Другое, тогда это - я честно не знаю, почему файлы JS стали недоступны для вас после перезагрузки страницы. Остальные файлы имеют заголовки с датой будущего, и я сам тестировал их с помощью Firefox версии 48.0.1 без каких-либо проблем. Сначала я загрузил страницу своими скриптами, а затем выбрал «Работа в автономном режиме». Браузер продолжал обслуживать кешированные версии этих файлов независимо от того, сколько раз я нажал обновление или F5. Возможно, это настройка с вашим браузером, но я не могу быть уверен. Возможно, у кого-то еще больше информации об этом.

+0

Ники спасибо. +1. Я использую [tag: chrome] с настройками по умолчанию ... Я буду ждать, чтобы узнать, какие другие ответы могут быть опубликованы. Поскольку вы нашли интересующий вопрос, я думаю, вы уже поддержали, спасибо! – gsamaras

+1

@ gsamaras действительно интересный вопрос! – NickyTheWrench

Смежные вопросы