Мы пишем код для управления разбиением на страницы результатов, полученных из запроса базы данных Tridion Broker (с использованием API).Tridion pagination - получение общего количества результатов
Мы используем SDL Tridion 2011 SP1 и можем использовать PagingFilter для получения tcmIds только Компонентов на выбранной странице.
Однако, выписывая элемент управления разбиением на страницы, мы должны знать общее количество результатов (чтобы определить, сколько страниц будет). Существует ли более эффективный механизм для этого, чем просто запуск отдельного запроса для результатов «все» и выполнение .Length для возвращаемого массива строк? (Очевидно, вы только один раз запустили бы этот запрос и сохранили бы это значение, когда пользователь нажимает между страницами.)
Если мы получаем все результаты, то зачем мне беспокоиться об использовании PagingFilter, когда мы можем просто обработать возвращаемую информацию в запросе «все»?
Большое спасибо заранее, Джонатан
Примечание: Там, вероятно, будет не более 2000 результатов какого-либо одного типа, возвращенного.
Я понимаю, что прежние объекты доставки, возвращаемые контентом, были кэшированы, но теперь (точное совпадение) запросы брокера кэшируются (поскольку Tridion 2011?) --_ возможно, это может быть причиной использования конкретного фильтра? Я видел разбивку на страницы с использованием JavaScript, но не уверен в идеях лучше, чем ваш подход к поиску. –
Большой вопрос Джон, не похоже, что вы можете выполнить запрос стиля «COUNT (....)». – Neil
Спасибо Нейлу. Да, мы думали, что может быть более эффективный механизм COUNT (...). Подход PagingFilter очень полезен, если вы ЗНАЛИ, сколько страниц у вас будет или вам не нужно знать, сколько страниц (и эффективно обрабатывать пустые массивы), но я бы подумал, что это довольно редко. –