Опустите текущую страницу от HTML5 Offline AppCache, но используйте кэшированные ресурсы

StackOverflow https://stackoverflow.com/questions/8320121

Вопрос

В целях производительности я хочу, чтобы некоторые из моих веб -страниц использовали ресурсы, которые были кэшированы для автономного использования (изображения, CSS и т. Д.), Но не иметь кэшированной кэшированной страницы, поскольку контент будет генерироваться динамически.

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

Если это возможно, я бы предпочел найти способ просто указать браузеру использовать кэшированные ресурсы (опять же, изображения, CSS и т. Д.) Для страницы, но на самом деле не кэшируйте (динамически сгенерированное) контент HTML.

Есть ли способ сделать это с HTML5 Offline AppCache? У меня сложилось впечатление, что ответ "нет", потому что:

  • Любая страница, которая включает в себя манифест, будет кэширована, поэтому я не могу указать кэшированные ресурсы на самой странице.
  • Невозможно сказать предыдущую страницу «Использовать автономные активы для этой другой страницы, но на самом деле не кэшируйте HTML на этой странице». Вы должны указать саму страницу, что означает, что HTML будет кэширован.

Я ошибаюсь в этом? Кажется, что, вероятно, есть какой-то хитрый (или не очень насыщенный). Теперь, когда я напечатал это, мне интересно, явно включает в себя страницу в NETWORK Раздел Manifest AppCache поможет.

Это было полезно?

Решение

Мой ответ "да".

Я работал над веб-приложением, где я перечислил все необходимые ресурсы в манифесте и установил NETWORK раздел *.

Манифест затем включен только на основную целевую страницу. Таким образом, все ресурсы кэшируются в первый раз, когда вы посещаете сайт, и он работает.

Короче говоря,

  • Одна из ваших страниц должна включать манифест и поэтому будет кэширован.

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

  • Перечислите все ваши ресурсы, которые будут кэшированы в CACHE раздел

  • установить NETWORK раздел *

Другие советы

Я вполне уверен, что ответ на это нет. Если вы используете раздел сети в Chrome, то показывает, какие ресурсы загружаются из кэша, а какие загружаются с сервера. Я попытался установить AppCache, как описано выше, и ресурсы всегда загружаются с сервера. Был бы я прав, если предположить, что, если текущая страница не будет в AppCache, она не будет убедиться в AppCache на каких -либо ресурсах?

Что я нашел, что работает, так это перечислять те файлы, которые вам не нужно кэшировать в AppCache в сети: раздел манифеста. Для меня это означало добавление * .asp * в раздел сети. Теперь ни один из классических файлов ASP или файлов ASPX не кэширована.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top