parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

кэш и $response:заголовки

527 29.04.2005 12:30 / 29.04.2005 12:32

Столкнулся с некоторой проблеммой.
вот в корневом auto.p сайта генерятся странички
@main[]
^rusage[start]
$response:content-type[
	$.value[text/html]
        $.charset[$response:charset]
]
# задаем дату устаревания
$response:expires[^date::now(+1)]
# а тут начинается кэширование
^my_cache{
^use[engine.p]
$engine[^engine::engine[2]]
# тут собственно генерится код страницы
$page[^engine.build_object[^object_id[]]]
# проверка 
^if($engine:HTTP_STATUS == 404){^cache(0)}
# и вот тут выдаем время обновления страницы
# оно берется из БД и доступно из поля объекта $engine:LAST_MODIFIED
# но вот проблема в чем!
# когда кэш запомнит страницу, то этот заголовок уже не выдается, 
# т.е. в принципе всё как в доке написано, кэшируется выдача.
# но мне нужно выдавать этот заголовок
# если вынести $response:Last-Modified за пределы кэша, 
# то будет ругань на несозданый обект $engine в момент когда будет отдавать страницу из кэша
# а если вынести 
# ^use[engine.p]
# $engine[^engine::engine[2]]
# из кэша то тогда будет работать медленее!
$response:Last-Modified[$engine:LAST_MODIFIED]
# выдаем страницу, если была 404 ошибка то $page будет заведомо пустой
$page
}

^rusage[finish]
Как правильнее поступить?