В данной статье рассматривается один из самых простых способов кэширования
подкачиваемых файлов, SQL запросов и других медленно создаваемых частей ваших
страниц. Язык программирования: PHP
Что должно быть на главной странице ?? Правильно, там должно быть понемножку
от каждого раздела сайта. И конечно Ваша страница строится автоматически, исходя
из содержимого форумов, новостных лент и других разделов сайта.
Сколько SQL запросов выполняется при загрузке главной страницы ?? Сколько
блоков подкачивается с других сайтов ??
Сейчас мы рассмотрим простой и эффективный способ кэширования данных такого
рода.
В качестве примера рассмотрим случай импорта новостей с внешнего сервера:
http://news.novgorod.ru/ultramode.txt
Наша задача получить этот файл, обработать его и вывести его пользователю.
Программа делающая это, выглядит следующим образом:
При каждой загрузке нашей страницы происходит обращение к внешнему серверу
news.novgorod.ru, оттуда по протоколу HTTP скачивается файл ultramode.txt. А
теперь представим ситуацию, что сервер находится на другом конце планеты и
соединение, а тем более передача файла занимает достаточно больше время. Или
более того, сервер может быть временно недоступен.
Вывод. Зачем каждый раз подгружать файл ultamode.txt, если новости
обновляются не чаще одного раза в два-три часа?? Правильно. Надо кэшировать.
А делать мы это будем очень просто. Как вы могли заметить, в первой строке
файла хранится комментарий. Комментарий нам не нужен и на его месте можно
замечательно разместить дату последнего обновления файла.
Алгоритм работы следующий:
Считываем кэшированную версию.
Если кэшированная версия устарела, то на ее место считываем файл
http://news.novgorod.ru/ultramode.txt, заменяем первую строку на текущее время
и сохраняем в кэш.
Оформляем и выводим данные пользователю.
Ниже приведен код проделывающий все это:
<? // считываем файл
из кэша $d=@file("/tmp/news.cache"); $fs=trim($d[1]); // Если файл не
обновлялся 3600 секунд (1 час) или файл пуст, // то обновляем его if
(intval($d[0])
Вот и все. Таким же образом можно кэшировать и SQL запросы. Используя этот
механизм мне удалось уменьшить время создания главной страницы с 1.5 сек до 0.05
сек.
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.