Как создать кеширование многостраничного списка?

Главные вкладки

Аватар пользователя juliv juliv 17 ноября 2009 в 20:21

Добрый вечер.
Занимаюсь написанием модуля для друпала, который выводит в списке информацию об организациях.
Оригинальная структура расположена создана в таксономии, но от стандартного вывода сразу отказался так как работает она очень медленно и при этом потребляет много ресурсов.
В списке также выводится рейтинг с возможностью голосования (fivestar), поэтому отказался от реализации во вьювс и ещё по паре причин.
Работа с каждой категорией каталога происходит через cache_set/cache_get пока без пейджера.
Но если включить пейджер, то как можно сделать кеширование?
Каждой страницы пейджера в отдельности сохранять в кеше или создать массив всех объектов в кеше по заданной категории, каждый раз полностью загружать её и после выводить только часть на выбранной странице пейджера.
Оба варианта мне очень не нравятся:
первый - устаревать данные могут одной страницы категории относительной другой
второй - каждый раз будет загружаться весь массив, из которого только часть будет обработана.

Как можно лучше реализовать кеш на списке с пейджером?

Комментарии

Аватар пользователя juliv juliv 18 ноября 2009 в 14:27

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

вроде правильно думаю..