HTTP: Каковы лучшие заголовки для редко меняющихся изображений - PullRequest
1 голос
/ 31 августа 2009

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

Итак, я пытаюсь найти второе лучшее решение. Какие заголовки я должен отправить? ETag? Истекает? Cache-Control? Прямо сейчас у меня есть:

http://metaward.com/media/award/ofwjh3.png

Last-Modified   Sat, 11 Jul 2009 22:37:49 GMT
Cache-Control   max-age=2592000
Expires Tue, 29 Sep 2009 22:41:21 GMT

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

http://metaward.com/6

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

Ответы [ 2 ]

2 голосов
/ 31 августа 2009

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

У вас действительно есть сотни изображений на странице, и вы должны их спрайтовать. Возможно, есть некоторые более распространенные (рекомендуется), с которых вы можете начать, чтобы посмотреть, помогает ли это. Или, может быть, вы могли бы сделать спрайт из тех, «наименее вероятно, изменится».

0 голосов
/ 31 августа 2009

Кэширование может немного помочь, когда посетитель переходит от профиля к профилю, а обслуживание изображений из разных поддоменов с постоянными соединениями может помочь ускорить доставку, но реальным фактором снижения производительности является просто количество HTTP-запросов. Если вы можете идентифицировать два или более изображений, которые появляются вместе более 50% времени, кажется, что было бы целесообразно объединить их в спрайт в регулярно запланированном автономном процессе. Если позволяют ресурсы, можно даже использовать библиотеку манипулирования изображениями, например, php-gd для объединения и обслуживания блоков изображений во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...