Bitrix - Кеширование
Войти

Bitrix - Кеширование

Bitrix - Кеширование

Что же произойдет, если закэшировать страницу как есть? Первый раз закэшируется страница на которой в корзине нет товаров и при добавлении товара в корзину он не отобразится пока вы не обновите страницу как минимум 2 раза (1хит на переписку кэша, второй на отображение). А если на сайте одновременно 2 или больше пользователей? Тогда пользователь, который зайдет на сайт увидит чужую корзину и так далее. Это и называется динамичной информацией. каким же образом можно поправить ситуацию? Специально для этого в битриксе есть способ разделить информацию на динамическую и статическую:

1
2
3
4
5
6
7
<?php 

$frame 
$this->createFrame()->begin();//Начало динамической области
$frame->beginStub(); //Начало статичной области
$frame->end(); // Конец фрейма

?>

Динамическое кеширование использует классы:

1
2
3
4
5
6
7
8
<?php 

/* класс для кеширования PHP переменных и HTML результата выполнения скрипта.*/
 
CPhpCache 
/*класс для кеширования HTML результата выполнения скрипта.*/
CPageCache 

?>

Кеширование методы

1
2
3
4
5
<?php 

   $this
->StartResultCache(); - проверяет наличие актуального кеша.

?>
Если есть кеш, то информация выводится из него. Следовательно, запроса к БД нету, массив $arResult не генерируется. и даже не подключается шаблон (метод $this->IncludeComponentTemplate()).

Ссылки по теме:

  1. bxnotes.ru
Теги:
php