Пропустить текущую страницу из автономного кэша приложений HTML5, но использовать кэшированные ресурсы - PullRequest
7 голосов
/ 30 ноября 2011

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

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

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

Есть ли способ сделать это с автономным appcache HTML5?У меня сложилось впечатление, что ответ «нет», потому что:

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

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

Ответы [ 3 ]

7 голосов
/ 30 ноября 2011

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

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

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

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

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

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

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

  • установите для раздела NETWORK значение *
2 голосов
/ 04 июля 2013

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

0 голосов
/ 14 января 2014

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

...