|
|
|
| Я пока не совсем могу понять принцип его.
Вот у меня сейчас контент на странице построен таким образом.
Запрос к базе
Цикл {
Вывод контента
}
Запросов к базе очень много и страница грущиться долго, по mssql. Мне нужно чтобы конент был в папке cashe и обновлялся каждые 5 минут. Вот нашел скрипт но не пойму как с ним работать, что теперь делать с запросами на странице и как ф-ии вставлять и куда.
Вот скрипт
<?php
function WriteCache($content, $filename) {
$fp = fopen('Cache/'.$filename.'.html', 'w');
fwrite($fp, $content);
fclose($fp);
}
function ReadCache($filename, $expiry) {
if (file_exists('Cache/'.$filename.'.html')) {
if ((time() - $expiry) > filemtime('Cache/'.$filename.'.html')) {
return FALSE;
}
$cache = file('Cache/'.$filename.'.html');
return implode('', $cache);
}
return FALSE;
}
ob_start();
if (!$old_page_content = ReadCache("Название_файла", "Время_в_секундах")) {
// Контент ТОПа
$new_page_content = ob_get_contents();
ob_clean();
WriteCache($new_page_content, "Название_файла");
}
ob_end_clean();
echo $old_page_content.$new_page_content;
?>
|
| |
|
|
|
|
|
|
|
для: Ванек2010
(19.10.2010 в 10:29)
| | Функции оставляете как есть.
Смысл кеширования: проверяете, есть ли файл кеша, этот файл кеша вы должны как-то пометить, чтобы знать, что в нем хранятся те данные, которые вам нужны,
если есть файл кеша - читаем файл,
файла кеша нет - вытягиваем данные из базы и пишем вытянутую информацию в файл.
В вашем случае:
<?php
ob_start();
//$old_page_content - читаете файл кеша, если он вообще есть и если время его создания не превышает установленного интервала
if (!$old_page_content = ReadCache("Название_файла", "Время_в_секундах")) {
// Контент ТОПа
//$new_page_content - контент, что вы тянете из базы
//здесь и ваш запрос, и цикл, вытянули - записали в файл через WriteCache
$new_page_content = ob_get_contents();
ob_clean();
WriteCache($new_page_content, "Название_файла");
}
ob_end_clean();
|
Ваши 5 минут переведите в секунды и поставьте вторым аргументов функции ReadCache, насколько я поняла...
Не поняла, к чему здесь буферизацию делают.
И еще следует учитывать, что вам вообще нужно делать, и группировать запросы между собой.
Иногда файл кеша может быть результатом нескольких запросов к базе. Например, если вам нужно на странице создать несколько блоков с разным контентом и после страницу закешировать. | |
|
|
|