2010-02-19 1 views
6

Мой сайт иногда загружается немного медленно, из-за количества загрузки изображений. У меня на самом деле 61 изображение на моей домашней странице из-за всех наложений и значков png. Я рассмотрел использование спрайтов или карты изображений, но мне действительно не хочется этого делать. Я знаю, что на мой сервер может быть только 2 запроса, поэтому, если я размещу изображения в другом месте, это ускорит время, но, является ли это надежным? Инструменты Pingdom сказали, что мой сайт превысил «тайм-аут». Я ищу решение, которое будет либо:Количество изображений на сайте вызывает длительную нагрузку

A) Spread моих изображений на разных серверах (но падение в том, что я хочу его на надежном сервере (мой!)

B) Использование только несколько образные спрайты или другая методика css

C) ??? Есть идеи?

Заранее спасибо.

Обновление 1: Я создал 6 поддоменов и разделил все мои изображения среди этих поддоменов. Вы можете видеть обычный сайт со всеми изображениями, размещенными в одной папке here, и вы можете видеть тот же сайт с изображениями через 6 поддоменов here. ** Как вы можете видеть, сайт с изображениями через поддомены загружает WAYY медленнее. Почему это? Я не понимаю!

Обновление 2: Я позвонил в свою хостинговую компанию, и они, похоже, считают, что решение поддомена не решит проблему и только замедлит ее, потому что у каждого поддомена нет уникальных IP-адресов. Мой сервер испытывал большую нагрузку, поэтому объясняет некоторую задержку, но проблема с этим изображением все еще остается. Он сказал, что лучше всего использовать Amazon Service, поэтому сейчас я буду исследовать.

У меня все еще проблема с пониманием - это отставание от определенных файлов изображений. Если вы посмотрите на результат загрузки страницы в firebug (см. Ответ BalusC ниже), существует значительное время ожидания для загрузки определенных изображений. Интересно, почему.

+1

Вы имеете в виду, что ваш план хостинга разрешает только 2 одновременных запроса HTTP? –

+0

он, вероятно, означает, что браузер разрешает использовать 2, но я думаю, что по умолчанию 4 или 8. – dusoft

+0

да, я думал, что это был предел запроса браузера – JCHASE11

ответ

3

Одна из лучших статей, которые я читал на эту тему:

Optimizing Page Load Time

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

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

+0

отличный комментарий. спасибо – JCHASE11

2

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

субдомены могут иметь (физические) символические ссылки на те же образы каталогов/

+0

ничего себе. действительно. так что, если я настроил сказать 10 поддоменов на моем сервере и разделил изображения среди этих поддоменов, он загрузился бы намного быстрее, правильно? – JCHASE11

+0

Да, но имейте в виду, у браузера также есть верхний предел для всех запросов. поэтому, вероятно, это имеет смысл только для до 6 поддоменов (или google по умолчанию верхний предел параллельных запросов). – dusoft

+0

Хотя я думаю, что «правильная» вещь - использовать спрайты изображений, это лучшее решение для меня.Я дам ему выстрел – JCHASE11

2

Amazon предлагает CDN услуги: http://aws.amazon.com/cloudfront/ Вы могли бы разместить изображения там, и платить только за пропускной способности, используемой. Amazon AWS традиционно достаточно надежна. Вы могли бы cname дополнительных поддоменов обойти ограничение HTTP 1.1 2, как упоминает @dusoft.

+0

Да, облака (не только Amazon AWS, но и другие) также являются хорошим способом. но он, вероятно, не хочет платить ... – dusoft

+0

, если бы его пропускная способность, разве это было бы очень дешево для около 3 мб изображений? – JCHASE11

+0

никогда не будет, это полностью зависит от трафика. Забавно, что интерес к желанию большего трафика не соответствует этому плану. На веб-сайте, генерирующем доход от рекламы, чем больше трафика вы получаете, тем больше вам приходится платить за полосу амазонки. Извините, но не вариант. – JCHASE11

2

В соответствии с Вашим обновление:

Я создал 6 поддоменов и разделить все мои образы из этих подобластей. Вы можете увидеть обычный сайт со всеми изображениями, размещенными в одной папке здесь, и здесь вы можете увидеть один и тот же сайт с изображениями через 6 субдоменов.

Как вы можете видеть, сайт с изображениями через поддомены загружает WAYY медленнее. Почему это? Я не понимаю!

Я проверил network panel из Firebug:

Это был "нормальный" сайт:

alt text
(full image here)

Это был "улучшен" сайт:

alt text
(full image here)

Это заметно лучше (гораздо больше одновременных запросов), но было много больших зеленых баров для «подключения» (около 9 секунд), браузер ждет подключения к серверу. Таким образом, проблема больше в сервере. Похоже, что с Keep-Alive что-то не так, и что сервер Apache HTTPD настроен на KeepAliveTimeout 10 или около того. Попробуйте отключить Keep-Alive для этих виртуальных хостов по KeepAlive off и посмотреть, что произойдет.

+0

Im не слишком опытный с этим. Когда я тестирую его, я испытываю тайм-аут, хотя все изображения в конечном итоге загружаются. Кажется, это мой сервер, который является хостом gator. Наверное, я позвоню им. Странно, что одни и те же файлы каждый раз вызывают удержание. Есть идеи? Спасибо Балус – JCHASE11

+0

накладные расходы протокола могут вызвать это. но на основе вашего обновленного вопроса, я уверен, что есть некоторые другие проблемы с сервером (например, количество параллельных запросов, которые оно разрешает и т. д.). – dusoft

+0

см. обновление выше. Хостинговая компания, похоже, думает, что сервер в порядке. Firebug говорит мне, что «улучшенный сайт» лучше, но моя хостинговая компания и мои часы говорят, что «нормальный сайт» загружается быстрее. Я не знаю, что вызывает это отставание, и хостинговая компания действительно не помогла. Im думает, что Amazon S3 решит все мои проблемы. – JCHASE11

0

У Google есть инструмент под названием Page Speed. Из их описания:

Speed ​​Страница выполняет несколько тестов на конфигурации веб-сервера под управлением сайта и фронтального кода. Эти тесты основаны на на наборе лучших практик, известных как , что повышает производительность веб-страницы.

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

У них также есть docs по лучшим показателям производительности, таким как минимизация времени кругового путешествия.

Смежные вопросы