VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Многие задают вопросы:А что если будет большое кол-во запросов к базе данных?Хостер заблокирует меня...?
Вот небольшое решение,как избежать большое кол-во запросов к БД
Code:
class cache {
var $cache;
var $cacheurl;
var $modif;
var $its_all_cache_menu_ok;
var $fullurl;
function CacheStart($urlglobal,$timecache,$path) {
$this->cacheurl="cache_".md5($urlglobal);
$this->fullurl=$path.$this->cacheurl;
$this->modif=time()-@filemtime ($this->fullurl);
if ($this->modif<$timecache){
include ($this->fullurl);
$this->its_all_cache_menu_ok=1;
}
}
function CacheInit() {
ob_start();
}
function CacheClean() {
ob_end_clean();
}
function CacheGet () {
$this->cache = ob_get_contents();
return $this->cache;
}
function CacheInputAndWrite() {
echo $this->cache;
$fp = @fopen ($this->fullurl, "w");
@fwrite ($fp, $this->cache);
@fclose ($fp);
}
}
А теперь, в те места, которые требуют много ресурсов процессора для отображения, добавляем
Code:
$classcache->CacheStart($_SERVER['REQUEST_URI'], 1800, rtrim($_SERVER['DOCUMENT_ROOT'],'/')."/cache/");
if ($classcache->its_all_cache_menu_ok!=1) {
$classcache->CacheInit();
//Здесь ваш код
$classcache->CacheGet();
$classcache->CacheClean();
$classcache->CacheInputAndWrite();
}
KashinRoman добавил 23.10.2013 в 18:35
Апну темку
Last edited by KashinRoman : 10-23-2013 at 07:35 PM.
Reason: Добавлено сообщение
Лол, это конечно можно назвать кешированием, но только по сути, если подобную методику прикрутить к vB, то это будет даже печальнее, чем дефолтный датастор.
gap
Знаток
Join Date: Sep 2013
Posts: 151
Версия vB: 3.8.7
Пол:
Reputation:
Knowing 201
Репутация в разделе: 87
0
Мало букв )))) По кэшу можно дофига понаписать, в инете куча статей на эту тему.
Quote:
Originally Posted by KashinRoman
А теперь, в те места, которые требуют много ресурсов процессора для отображения, добавляем
Тут в начало файла куда вставляется ваш код надо добавить строку инициализации класса
PHP Code:
$classcache = new cache();
Да и сам класс лучше держать в отдельном файле типа class_cache.php и в основном коде вызывать с помощью require_once