Предварительная загрузка изображения jQuery из кэша - PullRequest
0 голосов
/ 23 сентября 2011

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

1 Ответ

1 голос
/ 23 сентября 2011

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

Если вы хотите, вы можете поместить в изображения заголовки 'far futures expires', чтобы браузер даже не пытался проверить сервер и просто предполагал, что все изображения, которые он имеет в своем кэше, в порядке.Это будет эффективно делать то, что вы просили.

Я думаю, Yahoo говорит, что это лучше, чем я могу:

Браузеры (и прокси) используют кэш для уменьшенияколичество и размер HTTP-запросов, что ускоряет загрузку веб-страниц.Веб-сервер использует заголовок Expires в ответе HTTP, чтобы сообщить клиенту, как долго компонент может быть кэширован.Это заголовок Expires далекого будущего, сообщающий браузеру, что этот ответ не устареет до 15 апреля 2010 г. Срок действия истекает: четверг, 15 апреля 2010 г. 20:00:00 GMT

Если ваш сервер Apache,используйте директиву ExpiresDefault, чтобы установить дату истечения срока действия относительно текущей даты.Этот пример директивы ExpiresDefault устанавливает дату истечения срока действия через 10 лет с момента запроса.ExpiresDefault "доступ плюс 10 лет"

Имейте в виду, что если вы используете заголовок Expires далекого будущего, вы должны изменять имя файла компонента при каждом изменении компонента.В Yahoo!мы часто делаем этот шаг частью процесса сборки: номер версии встроен в имя файла компонента, например, yahoo_2.0.6.js.

Таким образом, вы можете поместить заголовок Expires: Thu, 31 Dec 2030 0:00:00 GMTи браузер не будет искать изображение снова в течение следующих 29 лет или около того:).Конечно, это означает, что если вы измените изображения, вам придется их переименовать.

...