parser

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

 

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

зачем периодически?

mashi 20.02.2006 20:06

Вообще, наиболее разумно было бы переодически считать и кешировать дерево в виде хешей, но в парсере нет средств сериализации для этого типа данных.
Зачем периодически?
Достаточно один раз, после любого изменения конфигурации дерева.
Разве что пересчитывать не все дерево, а только там где это надо.
Например, поменяли у элемента имя или родителя -- перстраиваем его full_path, nesting и thread_id, а ткже у всех его потомков.

В процессе сборки страницы по какомуто запросу, необходимо вытаскивать не все дерево, а лиш конкретную ветку с требуемым уровнем вложености (where thread_id=x and nesting=5) + полные два верхних уровня (корень сайта и корни всех разделов)
Этой ветки будит достаточно для постороения главного меню, меню раздела и хлебных крошек.

Для построения карты сайта прийдется один раз вытащить все дерево. Дальше будет работать кеш запроса, до тех пор пока админка не удалит кеш.

Для формирования ссылки на внутренние страницы других разделов прийдется лезть в базу за конкретным элементом дерева (но это ведь один раз: потом работает кеш)

Короче говоря, все можно кешировать без даты и срока, а при наступлении изменений -- удалять соотв. кеш-файлы.