Понимание кэширования изображений в веб-браузерах - PullRequest
4 голосов
/ 18 ноября 2010

Каков полный набор факторов, которые влияют на кэширование изображений в веб-браузерах? Какой контроль веб-разработчик имеет над этим, и каковы настройки браузера? Существуют ли другие соображения относительно других типов активов (например, скриптов, аудио)?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Полный набор факторов:

  • Заголовки HTTP, которые влияют на кэширование
  • поведение встроенного кэширования пользовательского агента (браузера)
    • можно изменить с помощьюпользовательские настройки, в зависимости от UA
    • , включая режимы частного просмотра, которые могут использовать, а затем очищать отдельный кэш для сеанса
  • действия пользователя, такие как очистка кеша вручную

Веб-разработчики имеют очень мало контроля, но это нормально.Помните, что кэширование выполняется в интересах конечного пользователя, обычно для сокращения времени загрузки страницы, и для вас обычно невозможно знать все соображения, характерные для каждого пользователя.

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

Браузеры могут обрабатывать изображения иначе, чем другие ресурсы (в основном отличающиесяпо умолчанию срок действия (если не указан), но вы можете отправлять заголовки HTTP для любого ресурса.

0 голосов
/ 18 ноября 2010

Со стороны клиента проверьте, отправляет ли браузер клиента заголовок If-Modified-Since на сервер. Если клиент отправляет заголовок, IIS ответит 304 Not Modified и, следовательно, клиент будет использовать свой локальный кэш для отображения / использования файла.

За это отвечают настройки клиента. IE -> Сервис -> Свойства обозревателя -> История просмотра -> Настройки -> Автоматически обеспечит это. Разные браузеры будут иметь разные регионы для этого параметра.

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

Настройки разработчика обычно предназначены для динамических файлов. В зависимости от языка [в ASP.NET директива OutputCache создает разные заголовки кэша], это может варьироваться.

...