Нужно ли кэшировать главную страницу сайта? - PullRequest
5 голосов
/ 26 марта 2012

К моему знанию, кэширование должно быть включено ТОЛЬКО для статического содержимого веб-сайта, и мы используем no-cache для динамических страниц. Главная страница сайта является самой динамичной, поскольку ее содержание регулярно обновляется. Странно, но я обнаружил, что крупные веб-сайты также устанавливают короткий кэш-объем для главной страницы. Google установил 3 секунды, стекопоток 21 секунд.

Более странно (для меня), анализируя производительность по WebPageTest.org, он рассматривает главную страницу как статический контент и ожидает долгое время жизни кеша. Например, вы получите уведомление об ОШИБКЕ за короткий срок службы кэша 21 с stackoverflow.com. Проверьте ЗДЕСЬ . Даже на 2 часа вы получите ПРЕДУПРЕЖДЕНИЕ.

Как кэшировать главную страницу и другие динамические страницы?

Ответы [ 3 ]

5 голосов
/ 26 марта 2012

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

Конечно, все зависит от ожидаемой частоты обновления, который будет отличаться не только от сайта к сайту, но и от страницы к странице: если ваша страница «о нас» может меняться раз в неделю, нет смысла заставлять ее истекать через 1 минуту;OTOH, если главная страница меняется каждую секунду, может быть полезно установить время ее истечения на 21 секунду, так как задержка обновления <1 мин является приемлемой, но 20 секунд, когда обновление не обязательно отправляет HTTP-запрос, весьма полезныдля снижения нагрузки. </p>

Другими словами, не существует жесткого правила, вынесенного на каменные таблички с горы Синай, в которых говорится: «Ты должен кешировать главную страницу на один день» или «Не кешировать динамическое содержимое»"- это очень сильно зависит от конкретной ситуации на сайте.

3 голосов
/ 26 марта 2012

В идеале вы должны кэшировать все, включая динамические страницы. Статические страницы / ресурсы могут кэшироваться с очень высоким максимальным возрастом, так как обычно они не будут меняться так часто, и даже если они меняются, вы можете изменить URL запроса (добавив QS), чтобы избежать записи в кэш. Кэширование динамических страниц немного сложнее, так как контент меняется довольно часто. Если возможно, вы должны попытаться реализовать If-Modified-Since для динамических страниц, где в If-Modified-Since указана временная метка последнего изменения вашей страницы или подраздела. Как правило, If-Modified-Since будет столбцом метки времени DateModified в вашей базе данных для этой конкретной сущности. Если ваша страница состоит из нескольких сущностей БД, тогда If-Modified-Since будет минимальным значением DateModified для этих записей. Реализация If-Modified-Since на самом деле немного хлопотна, поэтому многие люди просто оставляют свои динамические страницы как есть, но имейте в виду, что это действительно полезно, если ваша страница / сайт довольно популярна и сканируется SE довольно часто.

2 голосов
/ 26 марта 2012

Кэшируйте все, что можете на сервере - меню, регионы верхнего и нижнего колонтитула, баннеры.На стороне клиента кэшируйте ресурсы HTTP (JavaScript, CSS и изображения).

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

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

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