Я твердо верю, что лучший способ для оптимизации быстрая загрузка мобильных сайтов является оптимизация для всех.Мы не знаем, когда кто-то на не-мобильных устройств, но привязаны к их телефону, или просто на ужасном Wi-Fi .
В предыдущей статье для Smashing Magazine 1 Я объяснил, как можно ускорить ваши сайты, служа динамических страниц с обратного прокси-сервера, как лак.Если вы новичок в Varnish то, что статья место, чтобы начать, как I’ буду дайвинг прямо в детали конфигурации здесь .
В этой статье я объясню, как вы можете извлечь выгоду из использования Лак, даже если есть части ваших страниц, которые не могут быть в кэше в течение длительных периодов, используя пограничную стороны, включает .
Проблема с Caching
Основная часть большинства веб-страниц контента, меняются не очень часто.Вообще, когда вы опубликовать некоторые содержания остается практически неизменным, и даже если он будет обновлен, принимая несколько минут до появления новой версии не может быть проблемой.Если это важно, чтобы кэш недействительным на публикацию, вы можете использовать кэш invalidation 2 очистить эту страницу из кэша.Тем не менее, там могут быть некоторые контент, который вы не хотите кэшировать на всех, как персонализированное содержание.Там также может быть содержание, что вы хотели бы, чтобы кэшировать, но в течение более коротких периодов времени, возможно, пресс-виджета, который обновляет очень часто.Когда страницы содержат этот тип контента, который вы могли бы думать, что они uncachable.Именно здесь, однако, что края боковой включает (ESI) может спасти день — и ваша производительность сайта .
Какие Край сторона включает в себя
ESI 3 является спецификация языка для сборки фрагментов веб-страниц внутри других веб-страниц.Спецификация был представлен W3C в 2001 году, но остается “W3C Примечание” доступны для обсуждения и не одобрен W3C, или обновляется Рабочей группы .
ESI работает аналогичным образом с другими методами, включая фрагменты в ваших страницах, например, на стороне сервера включает в себя (SSI) или PHP включают заявления, но он был разработан для обратных прокси, как лак, которые сидят перед веб-сервер исодержимого кэша .
Каким ESI Работа лаком
Лак реализован подмножество функций ESI, три из семи доступных отчетности.Поддерживаемые заявления перечислены в Лак documentation 4 .Это означает, что мы можем использовать ESI на наших страницах и сказать лак для кэширования включают в себя в течение более короткого времени, чем основной документ, или даже не кэшировать включать в себя все.Если вы уже запущен и работает с лаком, it’ S действительно просто начать работать с ESI и сделать огромную разницу в вашей хит ставки: количество страниц из кэша .
Example
Если вы хотите, чтобы следовать и не имеют Лак установить, чтобы играть с, вы можете скачать мои бродячих пакет из GitHub 5 который будет устанавливать базовую сервер ЛАМПЫ и лак.Посмотрите на README на GitHub, чтобы увидеть, как настроить, что для вашей среды .
У меня есть макет, используя с открытым исходным кодом Bootstrap шаблон, который является стандартным макет блог.В боковой панели я намерен разместить некоторый контент, который будет часто обновляться, и я хочу, чтобы убедиться, что он не кэшируются слишком долго.Сообщение в блоге и другого содержимого Я хочу, чтобы кэшировать в течение нескольких минут, так как это не часто менять .
Сделать боковая панель Include
Первое, что нужно сделать, это сделать врезку PHP включают.Я сохранить включают в inc/sidebar.php
, а затем добавить PHP включают на главную страницу, чтобы включить его.Моя страница выглядит одинаково, но содержание боковой панели теперь разделены на 3 включают .__ |
В моей главной странице и в моем включают Ищу вывода текущей даты и времени.Это просто помогает мне видеть, работает ли моя кэш.Если я не делал не кэширование, каждый раз, когда я перезагрузите страницу я бы ожидать, пора менять.Лаком в состояние по умолчанию оба раза должны быть одинаковы, и они будут обновлять только тогда, когда кэш очищается .
Включить файл, используя ESI
Я теперь собираюсь использовать две метки ESI, поддерживаемые лаком:
esi:include
esi:remove
esi:include
тег используется для включения файла через ESI.Так что я заменить мою PHP включают с этим:
<esi:include src="inc/sidebar.php"/>
Создать запасного Когда ESI не Available
Сразу после esi:include
тег добавить esi:remove
теги и внутри этих тегов оригинальный PHP включают.Во время тестирования я также добавил строку “Не ESI!”, Так что я могу видеть, если включить добавляется в PHP или ESI .
<esi:include src="inc/sidebar.php"/>
<esi:remove>
<?php include('inc/sidebar.php'); ?>
<p>Not ESI!</p>
</esi:remove>
Если теперь загрузить страницу на сервере, что лак не имеет ESI настроенного вы должны увидеть текст “Не ESI!”.ESI не работает так оригинальный PHP включают будет загружен .
esi:remove
теги позволяют создать запасной вариант для ситуаций, когда Край стороны, включает не доступны.Это может быть потому, что лак не был настроен, чтобы использовать их для этой страницы, или вы служите сайт непосредственно через Apache, а может быть дело в развитии .
Где ESI доступны все <esi:remove></esi:remove>
Блок удаляется из страницы, когда включает разбираются.Использование esi:remove
заявление doesn’ т остановить код PHP от выполняется.Это все равно будет выполняться каждый раз, когда страница загружена, если ESI не доступен, и в соответствии с политикой кэширования, если это .
Альтернативная возможность использования esi:remove
это использовать третий оператор, поддерживаемый лаком, <!--esi … -->
.Вы должны использовать это, если вы не хоти …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров