| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Кэширование в CMS |
| Автор: kanaris 30.8.2008, 16:05 |
| Хочу услышать советы тех, кто делал кеширование в своих движках или сталкивался с подобными проблемами ну и вообще всех кто знает Придумываю алгоритм кеширования веб-страниц в движке. Обычно это делается в след. этапы: 1) из БД извлекается инфа о последнем обновлении страницы (по заданному урлу, кукам, и др) 2) извлекается последний образ кеширования страницы (по заданному урлу, кукам, и др) 3) если последний образ страницы устарел, сгенерить страницу по новой и обновить последний образ в базе. 4) если образ не устарел, в браузер выдать эту готовую страницу и пропустить процесс генерирования страницы (инклуд модулей, обработка данных, парсинг, етс). Возникает вопрос: как узнать, изменилась ли страница, не генерируя ее заново? На обновление страницы влияют такие факторы (не полный список): 1) изменение конкретной таблицы в БД 2) изменение файлов на сервере (если скрипт считывает какую-то директорию) 3) фактор времени (например, текущее число на календаре) - страница уже будет другой следующего числа 4) Залогиненный юзер (для каждого юзера одна и та же страница будет другой, например панель "Здравствуйте Пользователь! У вас 20 новых сообщений") 5) скин 6) язык 7) ... Также нужно предусмотреть такую проблему: если изменилась одна таблица (добавили/удалили/отредактировали запись), то должна измениться только та страница, на которую повлияла эта запись, а не все страницы, использующие эту таблицу (которые бы не изменились при редактировании таблицы), и чтобы страница не перегенеривалась, если она не изменилась. В общем нужно придумать самый гибкий и универсальный вариант. кто что посоветует... |
| Автор: Daevaorn 30.8.2008, 16:23 |
| В ORM и других компонентах предусмотреть систему сигналов, на которые можно повесить обработчики. Через них осуществлять инвалидацию кеша. Ну и вообще, кешировать всю страницу почти всегда не оправдано и глупо, лучше и гибе кешировать куски html и промежуточные данные. |
| Автор: Mal Hack 30.8.2008, 23:26 | ||
http://forum.vingrad.ru/index.php?showtopic=222972&view=findpost&p=1602378
Тема в догонку: http://forum.vingrad.ru/forum/topic-82069.html |
| Автор: lukas 31.8.2008, 00:08 | ||
| Самое простое что я писал для кеширования... Кеширует html кусками, а также переменные...
|