Forums / National / Russian / Тех. поддержка / Запросы документации

<<<1...45678910>>>

Принимаем вопросы от населения

Moool13
#91 2012-04-06 18:26
"обновлять его нужно только под гостем" т.е.?
Dayver
#92 2012-04-06 18:31

.... т.е - что бы не сохранить в файл страницу которая может отличатся личными настройками залогинившегося гостя - например другая тема оформления и вообще другой набор информации на странице)



Cotonti

Pavlo Tkachenko aka Dayver
This post was edited by Dayver (2012-04-06 18:44, 12 years ago)
Nik Samokhvalov
#93 2012-04-06 18:34

Dayver, спасибо тебе, теперь все понятно ;-)

Sorry for my English.
Dayver
#94 2012-04-06 18:37

секция

$cfg['cache_index'] = false; // Static page cache for guests on index
$cfg['cache_page'] = false; // Static page cache for guests on pages and categories
$cfg['cache_forums'] = FALSE; // Static page cache for guests on forums


в конфиге отвичает как бы за супер кеш))

Вообщем еще лучше почитать на английском http://www.cotonti.com/docs/devel/api/cache_guide

Cotonti

Pavlo Tkachenko aka Dayver
This post was edited by Dayver (2012-04-06 18:44, 12 years ago)
Nik Samokhvalov
#95 2012-04-06 18:45

На всякий случай уточнить хочу: мне для модуля, если я хочу, чтобы был файловый кеш, нужно написать вот это:

if ($cache && $usr['id'] === 0)
{
	$cache->store->write();
}

$cache->store->write() — store — это имя модуля?

Sorry for my English.
Dayver
#96 2012-04-06 19:15

Я сам еще не полностью разобрался с кешем (тоже модуль для е-мага делаю) но насколько знаю store (для обычного mysql кеша $cache->db->store() ) - команда связанная с "положить в кеш" так же по аналогии с $cache->db->get() "взять из кеша"

Pavlo Tkachenko aka Dayver
Moool13
#97 2012-04-06 19:17
"т.е - что бы не сохранить в файл страницу которая может отличатся личными настройками залогинившегося гостя - например другая тема оформления и вообще другой набор информации на странице)"

Это понятно) Я имею ввиду как обновить кеш под гостем? Или это не через админку?
Dayver
#98 2012-04-06 19:28

Думаю со временм он сам обновляется (наверное у него есть определенное время жизни), а если нужно вручную то думаю это через "админка-файловый кеш" - хотя это мои догадки ибо тему еще изучил не полностью

Pavlo Tkachenko aka Dayver
Trustmaster
#99 2012-04-06 19:28

Пишем в статический кеш всегда только после того, как отработает footer:

if ($cache && $usr['id'] === 0 && $cfg['cache_YOURMODULE'])
{
	$cache->page->write(); // здесь page - слой кеширования, а не модуль
}

Чистим статику при правке и добавлении/удалении элементов:

if ($cache && $cfg['cache_YOURMODULE'])
{
	$cache->page->clear('YOURMODULE');
}

Можно чистить не всё разом, а отдельные элементы, но это несколько сложнее.

И не забываем добавить в config.php тот самый $cfg['cache_YOURMODULE'], чтобы можно было быстро его включить/выключить.

Главное: когда использовать статический кеш. А использовать его следует, если на странице от запроса к запросу для гостя ничего не меняется. Тогда мы можем отдавать страницы практически как статику. Почему этот кеш работает только для гостей, dayver уже объяснил.

Added 1 minute later:

Время жизни у статического кеша неограниченное. Поэтому нужна явная очистка в коде. Если надо экстренно почистить, админ может это сделать в Администрирование / Прочее / Дисковый кеш.

May the Source be with you!
Nik Samokhvalov
#100 2012-04-06 19:50

здесь page - слой кеширования

Как понять, слой кеширования?

Sorry for my English.
Dayver
#101 2012-04-06 19:55

Видимо из вышепреведенной ссылки на документацию в коте есть три слоя

  1. дисковый кеш $cache->page->
  2. Mysql кеш  $cache->db->
  3. Мемори кеш $cache->mem->
Pavlo Tkachenko aka Dayver
Nik Samokhvalov
#102 2012-04-06 20:18

Ясно, понял.

Мемори — это программный кеш, на время исполнения скрипта?

Sorry for my English.
Trustmaster
#103 2012-04-07 06:44

Memory - это кеширование с помощью APC или Memcached. В представленном дайвером выше списке сверху вниз уменьшается объём кешируемых данных и увеличивается скорость записи. То есть в mem следует хранить самые часто меняющиеся данные, а в page - самые постоянные.

Ещё у нас весьма печальный опыт использования mem кеша с APC, потому что APC кеш един для всех приложений на одном хосте. Поэтому рекомендуется использовать его только с memcached, либо если на хосте только один сайт. Возможно, в будущих версиях из cache.php будут удалены бесполезные ныне драйверы.

May the Source be with you!
Nik Samokhvalov
#104 2012-04-07 06:59

В движке можно где-нибудь посмотреть пример работы мемори-кэша?

$cache->store->write()

Что делает store? Записывает кеш?

Sorry for my English.
Trustmaster
#105 2012-04-07 08:37

Пример есть в whosonline.

Приведенная выше строка некорректна. Никакого $cache->store нет и в помине, как и метода write() у любого из слоев.

May the Source be with you!

<<<1...45678910>>>