Оптимизация для сокращения времени загрузки веб-сайта

Какова некоторая важная оптимизация, которая может быть сделана к веб-сайту уменьшить время загрузки?

16
задан Josh Curren 1 March 2010 в 12:18
поделиться

14 ответов

Устранение / минимизация всех узких мест на стороне сервера. Для этого используйте профилировщик, такой как Xdebug или Zend Debugger, чтобы узнать, где ваше приложение выполняет дорогостоящие и медленные операции. По возможности используйте кеширование. Используйте кеш OpCode. Если это все еще недостаточно быстро, рассмотрите возможность инвестирования в больший объем ЦП, ОЗУ или твердотельных накопителей (в зависимости от того, используете ли вы ЦП, ввод-вывод или память)

Для общей оптимизации на стороне сервера / клиента см. Yahoo YSlow! Руководство пользователя .

В основном это сводится к следующему:

  1. Минимизация HTTP-запросов
  2. Использование сети доставки контента
  3. Добавление заголовка Expires или Cache-Control
  4. Компоненты Gzip
  5. Помещение таблиц стилей вверху
  6. Поместите скрипты внизу
  7. Избегайте выражений CSS
  8. Сделайте JavaScript и CSS внешними
  9. Уменьшите количество запросов в DNS
  10. Уменьшите количество запросов на JavaScript и CSS
  11. Избегайте перенаправления
  12. Удалите повторяющиеся скрипты
  13. Настройте ETags
  14. Сделать AJAX кэшируемым
  15. Использовать GET для запросов AJAX
  16. Уменьшить количество элементов DOM
  17. Нет 404
  18. Уменьшить размер файлов cookie
  19. Использовать домены без файлов cookie для компонентов
  20. Избегать фильтров
  21. Не масштабировать изображения в HTML
  22. Сделать favicon.ico маленьким и кэшируемым

Также см. Комментарии ниже, поскольку они содержат некоторую дополнительную полезную информацию для других пользователей.

21
ответ дан 22 October 2019 в 22:10
поделиться

Я могу придумать следующие простые варианты:

  1. Gzip (x) html, поэтому сжатый файл должен быстрее доставляться пользователю
  2. минимизировать CSS
  3. минимизировать JS
  4. использовать кэширование, где это возможно
  5. использовать сеть доставки контента
  6. использовать инструмент, такой как yslow , чтобы определить узкие места и другие предложения
2
ответ дан 22 October 2019 в 22:10
поделиться

определенно хочу взглянуть на кеширование, поскольку двусторонние обращения к БД обходятся дорого. также уменьшите размер JS

2
ответ дан 22 October 2019 в 22:10
поделиться

Не используйте пробелы в коде.

0
ответ дан 22 October 2019 в 22:10
поделиться

Чтобы уменьшить сетевой трафик, вы можете минимизировать статические файлы, такие как CSS и Javascript, и использовать сжатие gzip для сгенерированного содержимого. Вы также можете попробовать использовать такие инструменты, как optipng, чтобы уменьшить размер изображений.

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

0
ответ дан 22 October 2019 в 22:10
поделиться

Первая оптимизация: решите, будет ли она медленной, а если нет, не беспокойтесь.

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

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

Возможно, это не так для многих ваших пользователей.

Таким образом, существуют следующие варианты:

  • Узнайте, спросив ваших пользователей, не считают ли они его медленным
  • Смоделируйте среду с высокой задержкой и протестируйте ее самостоятельно (или своей командой QA)
  • Предположения

Последнее не рекомендуется.

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

1
ответ дан 22 October 2019 в 22:10
поделиться

установить плагин firebug и pagespeed следует всем директивам pagespeed (пока возможно) и будьте счастливы http: //code.google.com/intl/it/speed/page-speed/

в любом случае самая важная оптимизация, на мой взгляд, - это сокращение количества HTTP-запросов до минимума ...

{{1} }
2
ответ дан 22 October 2019 в 22:10
поделиться

Перед тем, как приступить к какой-либо оптимизации, вы должны иметь возможность профилировать, получить FireBug для Firefox. Затем вы можете выполнить некоторый анализ, который точно скажет вам, что делать, используя YSlow . Основные вещи, которые вам следует делать, перечислены здесь .

3
ответ дан 22 October 2019 в 22:10
поделиться

Вот несколько "лучших практик":

  • Кэширование CSS, JavaScript, изображений и т.д.
  • минимизация файлов Javascript.
  • gzip-контент.
  • Размещайте ссылки на файлы JavaScript, код JavaScript и ссылки на файлы CSS в нижней части страницы, когда это возможно.
  • Загружайте только то, что необходимо.
  • Для существующего сайта, прежде чем делать что-либо из этого, определите, где у вас узкие места с помощью таких инструментов, как Firebug и, как уже упоминалось, YSlow (я очень рекомендую этот инструмент).
2
ответ дан 22 October 2019 в 22:10
поделиться

Есть две стороны, о которых вы можете заботиться при оптимизации:

  • Серверная сторона: важно быстрее генерировать результат
  • Клиентская сторона: важно быстрее получить все, что должно быть отображено.

Примечание: мы, как разработчики, часто думаем об оптимизации серверной стороны в первую очередь... Которая в большинстве случаев составляет лишь менее 10% времени загрузки страницы!


На стороне сервера, как правило, вы захотите:

  • составить профиль, чтобы определить, что является длинным
  • оптимизировать ваши SQL-запросы и уменьшить их количество
  • использовать кэширование

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


На стороне клиента наибольший выигрыш обычно достигается за счет:

  • Уменьшения количества HTTP-запросов - самый простой способ уменьшить количество файлов JS/CSS/изображений, объединив несколько файлов в один
  • Сжатия CSS/JS/HTML, используя, например, mod_deflate от Apache.

Об этом есть много интересного на Yahoo's Exceptional Performance : они выпустили много хороших практик и инструментов, таких как yslow.

2
ответ дан 22 October 2019 в 22:10
поделиться

Балансировка нагрузки поможет значительно сократить время загрузки.

-3
ответ дан 22 October 2019 в 22:10
поделиться

Недавно мы сделали это на нашем веб-сайте. Здесь мы выделили девять техник, которые, казалось, оказали наибольшее влияние с наименьшими трудностями: http://mentormate.com/blog/easy-ways-speed-website-load-time/

2
ответ дан 22 October 2019 в 22:10
поделиться
1
ответ дан 22 October 2019 в 22:10
поделиться

Как уже упоминалось, вы можете использовать расширение Firefox Yslow или PageSpeed. Но вы также можете использовать GTmetrix , онлайн-сервис, сканирующий вашу страницу с помощью обоих инструментов.

Особенности, которые мне нравятся / используются:

  • мягкое, чистое и удобное представление
  • сравнение с другой страницей. Действительно интересно посмотреть, где твои друзья / конкуренты.

(кстати, я не имею отношения к gtmetrix!)

1
ответ дан 22 October 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: