Помгите. пожалуйста- кеширование динамической страницы

Spear

почемучка
Помгите. пожалуйста- кеширование динамической страницы

здравствуйте,
у меня такая проблемка - в одной части сайта есть фрейМ, который загружает динамически создаваему страничку. ХОтел бы сделать так, чтобы юзеры не грузили её каждый раз (разве что если сами захотят) и чтобы она кешировалась, часов на 10ть (там некоторая статистики, обновляется раз в сутки).
Подскажите, пожалуйста, какие хедеры необходимо отправить в создаваемой странице? Буду очень благодарен.
Пока что
header ("Last-Modified: ".gmdate("L, d M Y H:i:s")." GMT");
header ("Content-Type: text/html; charset=windows-1251");

- всеравно каждый раз грузится.
 

Фанат

oncle terrible
Команда форума
Spear
при обновлении статистики генери её сразу в хтмл-файл, чудик.
 

Spear

почемучка
Фанат
дык я же все ещё без крона :( Статистика генерится каждый раз рпи обновлении фрейма, поэтому хочу сделать хеширование. (хотя через месяц хостер обещает дать доступ к крону через админку - ох радости у мну будет! )
 

fog

Рыцарь Джедай
Фанат про крон ничего и не говорил.

Статистика сгенерировалась - ложи в файл.
Далее все запросы до часа Ч обрабатывай соответственно - подсовывая статический файл. Пробил час Ч - сделай реальный запрос, обно ви кэш. Всё.
 

Spear

почемучка
Есть такая идея:
для статистики заведу в БД поле, где будет указано время последнего обновления страницы.

каждый раз при обращении к коду статистики буду проверять время последнего обновления. и если пора обновлять то исполльзую такой код (с php.net):

<?php
$filename = 'test.txt';
$somecontent = "Добавить это к файлу\n";

// Вначале давайте убедимся, что файл существует и доступен для записи.
if (is_writable($filename)) {

// В нашем примере мы открываем $filename в режиме "дописать в конец".
// Таким образом, смещение установлено в конец файла и
// наш $somecontent допишется в конец при использовании fwrite().
if (!$handle = fopen($filename, 'a')) {
echo "Не могу открыть файл ($filename)";
exit;
}

// Записываем $somecontent в наш открытый файл.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}

echo "Ура! Записали ($somecontent) в файл ($filename)";

fclose($handle);

} else {
echo "Файл $filename недоступен для записи";
}
?>

потом обновляю в поле БД - время последнего обновления

Правильно будеот такое решение?

-~{}~ 07.07.05 03:10:

АААА! блин!
сделал но получается бред:
сначала юзер заходит на страницу статистики.
потом идет генерация (или не генерация) нового файла

но потом-то всеравно делается ИНКЛУД сгенерированного файла.
Тоесть - ничего я не добился. Даже сделал двойную работу - сначала генерим файлы хтмл, потом их инклудим (вместо того чтобы сразу статистику выводить).
может я чего не понял?
 

alexhemp

Новичок
все просто

1. В самом начале проверяем - не надо ли перегенерировать файл (т.е. он не существует или устарел)
2. Если надо - перегенерируем
3. Отдаем - всегда
 
Сверху