The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Организация кеширования динамических страниц"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Организация кеширования динамических страниц"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 25-Май-04, 17:22  (MSK)
Здравствуй All!

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

Пример "лента новостей".
Есть страницы
- постраничный список новостей
- список новостей с фильтрами (год, месяц, день), опять же, постраничный
- страница новости

Кешировать страницу новости просто при доступе к новости, определяется, есть ли кешированная новость, если нет, то получаем информацию из базы, генерируем и кешируем страницу.
При обновлении/удалении новости, удаляем ее кешированную страницу

Со списками уже сложнее.
Существует множество списков, куда входит новость.
Но опять же можно для каждой кешированной страницы хранить информацию о новостях, выводимых на ней и, в случае обновления одной из этих новостей, удалять кеши всех страниц, на которых эта новость присутствует.

Но что делать когда новость добавили в систему?
Как определить какие кеши нобходимо удалить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Организация кеширования динамических страниц"
Сообщение от fam Искать по авторуВ закладки(??) on 25-Май-04, 17:36  (MSK)
http://smarty.php.net/manual/ru/caching.php
очень советую
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Организация кеширования динамических страниц"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 25-Май-04, 18:44  (MSK)
>http://smarty.php.net/manual/ru/caching.php
>очень советую

Прочел. Предлагают хранит кеш некоторое время (по умолчанию -- час). Потом страница будет кешироваться снова.
Еще проверяет были ли изменены файлы шаблонов, если да, то кеш генерируется по новой.

Это не совсем то , что я имел в виду.
Да, кеш по времени -- это крайний вариан (и, возможно, единственный), но хочется найти другое решение.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Организация кеширования динамических страниц"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 25-Май-04, 18:50  (MSK)
>Но что делать когда новость добавили в систему?
>Как определить какие кеши нобходимо удалить?

Всё рассказывать не буду, но подскажу следующее: формализуй обращения к базе данных - так ты всегда будешь знать когда у тебя был INSERT, когда UPDATE, а когда просто SELECT.
Кстати, прямые никак не контролируемые запросык базе данных - всё равно зло, с которым надо бороться...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Организация кеширования динамических страниц"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 25-Май-04, 18:58  (MSK)
>>Но что делать когда новость добавили в систему?
>>Как определить какие кеши нобходимо удалить?
>
>Всё рассказывать не буду, но подскажу следующее: формализуй обращения к базе данных
>- так ты всегда будешь знать когда у тебя был INSERT,
>когда UPDATE, а когда просто SELECT.
>Кстати, прямые никак не контролируемые запросык базе данных - всё равно зло,
>с которым надо бороться...

Запросы формализованы. Я знаю, когда происходит UPDATE/DELETE новости и могу получить ее идентификатор. С помощью этих идентификаторов я удаляю из кеша страницы, на которых встречалась измененная/удаленная новость. Это все понятно.

Непонятно следующее, как мне определить, что вновь созданная новость о погоде на завтра встретится на 5-й странице новостей за текущий год, 2-й за текущий месяц да еще на 1-й общей ленты новостей? И кеш именно этих страниц необходимо обновить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Организация кеширования динамических страниц"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 25-Май-04, 21:43  (MSK)
>Непонятно следующее, как мне определить, что вновь созданная новость о погоде на
>завтра встретится на 5-й странице новостей за текущий год, 2-й за
>текущий месяц да еще на 1-й общей ленты новостей? И кеш
>именно этих страниц необходимо обновить?

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру