Уменьшение Количества Запросов Requestaction С Использованием Cache

В документации Cakephp 1.2 утверждает, что если requestAction используется без кэширования, это может снизить производительность.

Использование без кэширования requestAction может привести к снижению производительности.

Его редко целесообразно использовать в контроллере или модели.

Действительно, подумайте сами, каждый раз, когда вы просматриваете сайт, помимо основных запросов к базе данных делается куча мелких, с помощью requestActions, например.

И, как истинные политики, они говорят, ЧТО может произойти, но не говорят, КАК этого избежать.

Я приведу вам пример того, КАК я с этим справляюсь.

Коротко о том, как работает requestAction: RequestAction обычно используется в файле представления (папке представлений).

из файла представления вы делаете запрос на другую страницу и получаете значение.

Синтаксис requestAction:

$this->requestAction('/articles/home');

который сообщает Cakephp сделать запрос на адрес.

site.com/articles/home в самом контроллере, к которому обращается requestAction, необходимо написать return;

function home(){ $out = $this->Article->find('all'); Cache::write('articleHome', $out); return $out; }

Теперь мы можем смело добавить в $this-> requestAction('/articles/home'); следующие строки

$out = Cache::read('articlesHome'); if(empty($out)){ $out = $this->requestAction('/articles/home'); }

После этого делаем один раз запрос к базе данных и записываем все в файл.

а остальные раз читаем из файла.

Если в результате каких-то проблем со стороны НЛО мы не можем прочитать файл из кэша, ничего страшного.

Опять делаем запрос в базу данных, и снова пишем в файл (у священника была собака.

) и теперь каждый раз, когда мы обновляем этот список, если мы что-то добавили/изменили, не забываем перезаписать Cache:

Cache::write('articleHome', $out);

перекресток с
мой блог Теги: #CakePHP #requestAction #cache #cache # Performance #CakePHP

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.