Page 1 of 2
сильно тормозит сайт
Posted: Thu Jan 24, 2019 7:18 am
by smart
Приветствую, возникла проблема, стал очень сильно тормозить сайт, на него сграблены свои галлеры, база не большая, есть категории и топлист. После апа и чистки кэша какое-то время сайт работает нормально, потом через несколько минут начинается тоже самое. Сервер и винты не нагружны, админы сказали что нужно писать автору скрипта.
Re: сильно тормозит сайт
Posted: Thu Jan 24, 2019 7:23 am
by admin
ок, какой сайт как видно что тормозит?
Re: сильно тормозит сайт
Posted: Thu Jan 24, 2019 7:35 am
by smart
admin wrote: Thu Jan 24, 2019 7:23 am
ок, какой сайт как видно что тормозит?
сайт со своими пикчами, тормозит при переходах между страницами, очень долго думает, перед открытием страницы, скинул в личку сам сайт
Re: сильно тормозит сайт
Posted: Thu Jan 24, 2019 9:00 am
by admin
проблема в "таг в таге"
в кратце ситуация такая
<category order=ctr num=1-100>
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
</category>
парсится это для выполнения в 100 раз по
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
но у вас там не только 12-12, а в реальности штук 20 таки тагов
получается вывод категорий в реальности растягивается на 100 * 20 = 2000 тагов на странице
вопрос в том, что <trader не кешится специально, тк страница может быть закешена на час или день (например страница галеры), а топ трейдеров меняется каждую минуту
получается на каждую загрузку страницы надо по новой расписить 2000 тагов и это тормозит.
Что делать: вынести
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
за пределы цикла
<category order=ctr num=1-100>
те должно быть типа
$my_var = '
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
';
<category order=ctr num=1-100>
тут где надо юзаем $my_var
</category>
Re: сильно тормозит сайт
Posted: Sat Jan 26, 2019 7:41 am
by smart
admin wrote: Thu Jan 24, 2019 9:00 am
Что делать: вынести
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
за пределы цикла
<category order=ctr num=1-100>
те должно быть типа
$my_var = '
<trader order=uniques num=12-12>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
';
<category order=ctr num=1-100>
тут где надо юзаем $my_var
</category>
если я правильно понимаю, то такое решение не решает задачу, так как все равно помещаем таг в таг, только через переменную
Re: сильно тормозит сайт
Posted: Sat Jan 26, 2019 9:06 am
by admin
Решает.
упростим пример
3 категории
у вас сделано так (опять же сокращенный вариант но думаю смысл слысл ясен)
<category order=ctr num=1-3>
<!--CATEGORY_NAME-->
<trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
<trader order=uniques num=2>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
и тп
</category>
после парсинга это превратится в
Category 1
<trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
<trader order=uniques num=2>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
Category 2
<trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
<trader order=uniques num=2>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
Category 3
<trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
<trader order=uniques num=2>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
потому как результат тага трейдера не кешится
итого нам надо на каждую загрузку страницы заменить в данном примере грубо 6 тагов (по факту больше тк надо инклудить темплейт, в инклуде тоже наверняка не 1 таг и тп)
если
<trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
вынести за пределы цикла то получится
$var1 = <trader order=uniques num=1>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
$var2 = <trader order=uniques num=2>
<!--INCLUDE_TEMPLATE_toplist_thumb-->
</trader>
Category 1
$var1
$var2
Category 2
$var1
$var2
Category 3
$var1
$var2
те надо будет заменить только 1 раз таг трейдера, а остальные разы результат уже будет готов.
причем на самом деле оно кладет в кеш содержимое
<trader order=uniques num=2> ...
но из-за такого темплейта в цикле скрипт ходит и достает из кеша 1200 раз (это реально я посчитал на вашем темплейте) и это занимает время
Re: сильно тормозит сайт
Posted: Sun Jan 27, 2019 12:46 pm
by smart
а каким образом это реализовать в разных шаблонах ?
когда <trader order=uniques num=2> в одном шаблоне, а <category order=ctr num=1-3> в другом шаблоне ?
так как в итоге вывод не работает, при коде со списком трейдеров в одном шаблоне, а вставка идет в другом с переменной из первого
Re: сильно тормозит сайт
Posted: Sun Jan 27, 2019 12:59 pm
by admin
честно гворя не совсем понял как это ...
Re: сильно тормозит сайт
Posted: Tue Jan 29, 2019 9:45 am
by smart
admin wrote: Sun Jan 27, 2019 12:59 pm
честно гворя не совсем понял как это ...
на текущем примере:
блок category_thumbs содержит код с тумбами, для подмешивания топлиста
блок top_item содержит код с тумбами топлиста, обернутыми в пхп с переменной my_var
вставляя в блоке category_thumbs переменную my_var которая обернута в блоке top_item, я не получаю никакого результата, нужно объединить эти два блока, тогда будет работать
Re: сильно тормозит сайт
Posted: Tue Jan 29, 2019 9:57 am
by admin
думаю будет удобнее сначала это сделать без блоков простейшими конструкциями типа
$my_trader1 = 'это тумба трейдера';
<category order=ctr num=1-100>
тут где надо юзаем $my_trader1
</category>
и в тестовом темпелйте это вывести, а потом уже дополнять тагами и переносом в разные блоки
если в какой-то момент перестанет работать то сразу будет ясно где пробелма