Использование без кэширования 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
-
Отправка Url-Адреса Вашего Веб-Сайта
19 Oct, 24 -
Импортируйте Mts В Imovie Solution
19 Oct, 24 -
Utorrent На 16% Быстрее, Чем Vuze
19 Oct, 24 -
`Повторное Голосование Запрещено`
19 Oct, 24 -
Что Случилось С Парадоксом Ферми?
19 Oct, 24 -
Ролевая Игра Для Меня
19 Oct, 24 -
В Поисках Идеала
19 Oct, 24