Показ нескольких XSL с одинаковыми данным

#
Показ нескольких XSL с одинаковыми данным
Здравствуйте! Как правильно реализовать, чтобы при показе на странице одного набора данных но с разным оформлением не происходило повторных выборок из базы?
Имеется любой код вывода, например, групп товаров:

$Shop_Controller_Show = new Shop_Controller_Show(Core_Entity::factory('Shop', 1));
$Shop_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName('ГруппыТоваров1')
   )
   ->groupsMode('tree')
   ->group(0)
   ->limit(0)
   ->show();


Правильно ли записывать таким образом? Или необходимо как-то сохранить первую выборку и потом использовать?



$Shop_Controller_Show = new Shop_Controller_Show(Core_Entity::factory('Shop', 1));

// Задать одинаковые параметры
$Shop_Controller_Show
   ->groupsMode('tree')
   ->group(0)
   ->limit(0);
   
// Вызов первого оформления
$Shop_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('ГруппыТоваров1'))
->show();

// Вызов второго оформления
$Shop_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('ГруппыТоваров2'))
->show();

итд.



Этот способ пробовал, он работает, но отладочная информация разная, число запросов увеличивается.

Два вызова:


соединения с СУБД: 0.000 с
выбора БД: 0.000 с
выполнения запросов: 0.031 с
Количество запросов: 101.


Один вызов

соединения с СУБД: 0.001 с
выбора БД: 0.000 с
выполнения запросов: 0.030 с
Количество запросов: 95.


Посоветуйте, пожалуйста, как это делать правильно. Данные одинаковые, при большом количестве групп очень проседает скорость загрузки.
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Показ нескольких XSL с одинаковыми данным
nikolajgromkov,
Стандартно контроллер будет выбирать данные каждый раз, контроллер стремится освободить память, а не хранить ненужные данные до конца генерации всей страницы.
Некоторые выборки могут кэшироваться на уровне базы или на уровне ObjectWatcher, при достижении лимитов, ссылки на объекты в ObjectWatcher будут вытесняться, в вашем случае рекомендуем в modules\core\config\objectwatcher.php установить 'maxObjects' => 4096
#
Re: Показ нескольких XSL с одинаковыми данным
Понял, спасибо. Будем на большой базе тестировать.
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
#
Re: Показ нескольких XSL с одинаковыми данным
А какой скрипт нужно прописать в onclick="<скрипт>" в этом случае в тэге <button>?
Авторизация