17 окт. 2014 г., 8:42
Как запретить чистить кэш при удалении и востановлении ресурса(документа)?
Подскажи пожалуйста, как запретить чистить весь кэш при удалении и восстановлении нового документа в админке modx revo 2.14, заранее спасибо
Вопрос: а зачем запрещать?
дело в том что, при удалении страницы чистится весь кэш, что не очень хорошо, так как я в console создаю кэш всего сайта, и очень не удобно что при каждом удалении странички чистится кэш
Лучше было бы просто удалять кэш удаляемого ресурса но не трогать при этом кэш всего сайта
А зачем в консоли создавать кеш? Что не так с базовым функционалом? У вас что, несколько сотен тысяч документов?
Отвечая на ваш вопрос, скужу, что скорее всего никак. Вот метод cleanup() в процессоре обновления ресурса. Вклиниться туда, передав нужный параметр - кажется задача маловероятная.
Эта тема много раз обсуждалась. Невозможно проследить все зависимости кеша. Это и карта алиасов, и кеши элементов и т.п. Поэтому если что-то серьезное (типа изменения документов и т.п.), то кеш правильно скидывать весь.
Если у вас после сброса кеша все очень тормозит, значит работайте над оптимизацией сайта, а не над тем, как кеш не очищать.
А зачем вы кеш принудительно создаете? Это скорее всего вызывает больше проблем, чем дает бонусов или у вас хайлоад, что все в кеше приходится держать?
Нет у меня 750 страниц, так как каждая страница имеет до 1 секунды загрузки то после кеширования 0.250-0.500 ms
Что не так с базовым функционалом?
Если возможно, поясните что вы имели ввиду, может я что то не знаю.
А про то что я в консоли создаю, я тестирую работу сайта и так как, код для создания кэша срабатывает в плагине, и я решил запускать его в вашем приложении Console что бы быстренько протестить вот сам код
<php //$res=1; //file_get_contents($this->modx->makeUrl($res, '', '', 'full')); $start_id = 0;//$modx->getOption('start_id',$scriptProperties,2); $depth = 5;//$modx->getOption('depth',$scriptProperties,1); $start_resource = $modx->getObject('modResource',$start_id); //if(!$start_resource) return ''; //$context = $start_resource->get('context_key'); $child_ids = $modx->getChildIds($start_id,$depth,array('context'=>"web")); array_push($child_ids,$start_id); foreach($child_ids as $id){ $url = $modx->makeUrl($id,'','','full'); $content = file_get_contents($url); echo $id."=".$url."\n"; } unset($content);
С вашим скриптом все ОК. Во всяком случае он выполняет то, что вы хотели. Но опять вопрос: а зачем? Ну грузится на холодную 1 секунду, ну и что? 1 секунда - не порог для потери пользователя. А оверклокингом заниматься - нафига?
Я бы вам половетовал лучше просто заняться оптимизацией самого сайта. Если нормально все сделать, то он и на холодную будет загружаться не более 0,5 - 0,6 секунд. У вас Smarty?
спасибо за ответ
Не за что
ну или в крайнем случаи закомментировать
в undelete.class.php
delete.class.php
undelete.class.php
/* empty cache */ $this->clearCache();
Хардкодить в ядро не круто. Слетит при апдейте системы.