Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
В этой статье я хотел бы рассказать о принципах кэширования и как его можно осуществить на PHP. Само по себе кэширование позволяет избежать лишней нагрузки на сервер, если это возможно. Представьте ситуацию когда у вас на сайте для формирования страницы делается большое количество SQL запросов и операций, которые используют очень много ресурсов сервера. Если материал на странице не обновлялся, то делать эти запросы и операции каждый раз не зачем, ведь результат один. Вот в таких случаях и используеться кэш. А при обновлении материала он удаляется(очищается) и создается новый. Сейчас я покажу пример самого простого кэша.
Тут я показал как создать кэш, а сейчас я покажу как можно проверить его существование и не создавать его заново, если он есть.
И так это самый простой способ что либо закэшировать, но как вы заметили тут мы работаем постояно с одним файлом а на сайте страниц может быть много и нам надо знать какой файл к какой странице относиться. Для этого мы можем делать имя файла уникальным для каждой страницы. Например брать строку запроса и делать имя файла с ее кэшем в виде md5 хеша этой строки запроса.
Вот так например. Но и тут еще не все а что делать если зарегистрированый юзер и гость видят разное содержимое на одной и той же странице? Нам надо это учесть. Допустим мы узнаем о том что пользователь зареган из сессии, тогда мы можем делать приставку к имени файла для зарегистрированых юзеров.
Ну вот пока это все. Осваивайте эту технологию а я в следующей части расскажу как кэшировать отдельные блоки на странице и покажу более совершенный способ кэширования.
С вами был Drunya
1
2
3
4
5
6
7
8
9
10
<?php //начинаем буферизацию (все что будет после этой функции не будет выводитсься, а будет сохраняться в буфер)
ob_start();
//далее мы можем делать что угодно, например выводить контент
echo 'Контент страницы';
//теперь забираем все что выводили из буфера и чистим его
$content = ob_get_clean();
//теперь сохраняем страницу в файл, это и есть кэш
file_put_contents('cache.dat', $content);
echo $content;?>
Тут я показал как создать кэш, а сейчас я покажу как можно проверить его существование и не создавать его заново, если он есть.
1
2
3
4
5
6
7
<?php //проверяем есть ли кэш
if (file_exsits('cache.dat')) {
$content = file_get_contents('cache.dat');
} else {
//формируем страницу и создаем кэш
}
echo $content;?>
И так это самый простой способ что либо закэшировать, но как вы заметили тут мы работаем постояно с одним файлом а на сайте страниц может быть много и нам надо знать какой файл к какой странице относиться. Для этого мы можем делать имя файла уникальным для каждой страницы. Например брать строку запроса и делать имя файла с ее кэшем в виде md5 хеша этой строки запроса.
1
2
3
4
5
6
7
8
9
10
<?php $cache_file = md5($_SERVER['REQUEST_URI']) . '.dat';
if (file_exsits($cache_file)) {
$content = file_get_contents($cache_file);
} else {
ob_start();
echo 'Контент страницы';
$content = ob_get_clean();
file_put_contents($cache_file, $content);
}
echo $content;?>
Вот так например. Но и тут еще не все а что делать если зарегистрированый юзер и гость видят разное содержимое на одной и той же странице? Нам надо это учесть. Допустим мы узнаем о том что пользователь зареган из сессии, тогда мы можем делать приставку к имени файла для зарегистрированых юзеров.
1
2
<?php $cache_file = md5($_SERVER['REQUEST_URI']) . '.dat';
if (isset($_SESSION['user'])) $cache_file = 'autorized_' . $cache_file;?>
Ну вот пока это все. Осваивайте эту технологию а я в следующей части расскажу как кэшировать отдельные блоки на странице и покажу более совершенный способ кэширования.
С вами был Drunya
Кэширование в PHP и как его сделать. ЧАСТЬ 1
Теги: Cache; PHP; Fapos CMS; Fast CMS; Быстрая CMS с форумом; бесплатная CMS Fapos;
Источник: Drunya
Теги: Cache; PHP; Fapos CMS; Fast CMS; Быстрая CMS с форумом; бесплатная CMS Fapos;
Источник: Drunya
Комментарии
-
Евгенией
Блочное кеширование: salat-production.ru/blog/klass-blochnogo-keshirovaniya-stranic.phpДата отправления: 12 Ноя 2014
Сейчас online: 102. Зарегистрированных: 0. Гостей: 102.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте