Разработка сайта www.proektms.com на базе wordpress с использованием адаптивного (responsive) шаблона, локализация и кастомизация темы.

Редизайн онлайн магазина на базе Opencart, занимающегося продажей матрасов, ортопедических подушек и ортопедических оснований extrason.ru

Веб-сайт для Коттедж Проект
Лидер продаж на украинском рынке

Разработка сайта онлайн магазина Perfume and Skin, интеграция дизайна с Magento

Разработка дизайна онлайн магазина Perfumeland Megastore, интеграция с Magento

Мы разработали новый дизайн портала и обновили функционал для крупнейшего интернет комьюнити индийских женщин

Веб-сайт ООО "Корвет. Производственная компания, один из лидеров на украинском рынке по производству бумажных пакетов

Geothermal Resources Counsil разработка дизайна веб-сайта и логотипа.

Веб-сайт для Hammerhead Aerobatics - компании, занимающейся устройством авиашоу и обучением пилотированию.

Реорганизация блоков и элементов контента и разработка нового дизайна для Cruise Planners.

Официальный блог и Фейсбук страница Ali Skylar.

Веб-сайт производителя и продавца велосипедов

Портал российского строительного магазина

Lil Red флеш игра

FlowRider флеш игра

Golf для Cruise Planner

<< >>
webdesign.kh.ua — веб дизайн, разработка сайта, раскрутка и поддержка сайтов
Наши телефоны:
  • +380 50 572 29 32
  • +380 96 459 31 19
  • — 275474481
  • — webdesign_kh_ua
Портфолио
>
>
Как организовать кэширование страниц сайта

Как организовать кэширование страниц сайта

Для чего нужно кэширование веб страниц

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

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

Процесс кэширования сайта

При кэшировании динамические веб-страницы, которые генерируются PHP, сохраняются в виде статических HTML-страниц либо текстовых файлов, или JSON-структур. Они хранятся на сервере в специально отведенной папке, например, /cache/ или /tmp/. Каждый раз, когда пользователь запрашивает адрес исходной страницы, ему открывается ее сохраненная статическая HTML копия. Происходит это гораздо быстрее, чем при обращении к первоисточнику (PHP скрипту), так как в этом случае одна и та же страница не генерируется каждый раз заново. При этом не запускается серверный процесс PHP.

В случае, если кеш хранится в виде текстовых файлов или json, то обязательно запускается пхп процесс, который парсит текстовую или JSON структуру для представления ее в виде HTML. На то, чтобы запустить пхп нужно потратить определенное время. А в нашем деле каждая доля секунды дорога :).

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

Проблемы кэширования страниц сайта

Кэширование существенно оптимизирует скорость работы сайта, снижает нагрузку на сервер, но связано с проблемой устаревания контента. Рано или поздно, контент обновляется, и закэшированная копия страницы, которая выдается на запрос пользователя, может оказаться неактуальной. Для решения этой проблемы нужно предусмотреть “сброс” кэша. Это может быть дополнительный PHP-скрипт, который будет запускаться кроном (cron — планировщик задач в UNIX-подобных операционных системах). Частоту запуска такого скрипта следует установить согласно частоте обновления контента сайта. Это может быть раз в сутки, раз в неделю. Если у вас контент обновляется раз в месяц, то, очевидно, у вашего сайта не большой трафик и смысла связываться с кэшем нет.

Пример кеширования на PHP

$data = $cache->read($cache_dir);

if($data) {

    $positions = $data;

} else {

    $positions = Position::getPositionsCache($where, 1, '', $order_by, $limit);

    $cache->write($cache_dir, $positions);

}

все статьи →