PHP в темплейтах. Не кеширует результат

Post Reply
Ling
Posts: 335
Joined: Wed Mar 16, 2016 12:27 pm

PHP в темплейтах. Не кеширует результат

Post by Ling »

TCMS
Есть в сабтемплейте кусок кода <?echo rand(1,100)?>. Почему, при рефреше страницы там всегда разное число?
Т.е. вопрос, почему там не кешированый результат? Получается, при рефреше каждый раз запускается генератор сл.чис. - а это нагрузка.
Судя по всему, любой кусок ПХП кода отрабатывает, при каждом заходе на страницу в т.ч. и когда делаются красивые линки типа &a=12&b=34&c=56 с кодом в сабе примерно <? $my_var = explode('x', '<!--THUMB_LINK-->'); ?> (взято из вики)

Как сделать, чтобы кусок ПХП кода отрабатывал, только при пересоздании страницы, через время указанное в Rotation Settings?

В Page settings стоит
Cache time, seconds
0 = use Cache Time
from Rotation Settings - тут пробовал и 0 и 1200 и т.д. - результат тот же.

В Rotation Settings Cache time, seconds 7200. Recreate pages every X minutes 120

Вставлял этот код не в SubTemplate, а просто в Template - результат тот же.
Кеш прибивал.
Результат отработки ПХП не кешируется, а генерится при каждом заходе на страницу.
Может сделать тег типа <!--php ... --> - такой код отрабытывать, при пересоздании по расписанию, и результат - в ХТМЛ кешированой страницы

Сори, если что-то упустил из мануала
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP в темплейтах. Не кеширует результат

Post by admin »

Ничего не пропустили - все верно, пхп код не кешируется тк мало ли что у вас в коде, может там от языка серфера зависит что-то или его ГЕО и тп, вариантов масса.

Такие вычисления добавят может 1 тысячную к отдаче страницы.
При том что плохой выбор хостинга добавит к пингу например 50-100 тысячных

Но если будет критично кешировать пхп код - можно будет придумать и это.
Don't forget to run script update
Ling
Posts: 335
Joined: Wed Mar 16, 2016 12:27 pm

Re: PHP в темплейтах. Не кеширует результат

Post by Ling »

Ну вот у меня в темплейте для каждой тумбы есть код <?echo rand(1000,100000)?> - Выводит фейковое количество показов видео.
Это ж при 100 тумбах на странице, при каждом заходе сёрфера будет 100 раз дёргаться генератор сл.чисел

Вопрос также беспокоит, про "красивые линки"
Вот из вики
Вариант 3 если вы хотите совершенно другой вид

В данный момент таг <!--THUMB_LINK--> выдает условно 12x34x56, например вы хотите что б было &a=12&b=34&c=56 или например &ppp=12.34.56 и тп , одним словом какой-то другой вид.

в сабе делаете

$my_var = explode('x', '<!--THUMB_LINK-->');

получаете массив

Array
(
[0] => 12
[1] => 34
[2] => 56
)

и можете из него формироваль линк как угодно

например вариант с a b с

out.php?url=....&a=<?=$my_var[0]?>&b=<?=$my_var[1]?>&c=<?=$my_var[2]?>

а в common.php складывается параметр назад

if (isset($_GET['a'])) {
$_GET['link'] = 'images/' . $_GET['a'] . 'x' . $_GET['b'] . 'x' . $_GET['c'];
}
Это для каждой тумбы, при каждом заходе сёрфера, создаётся массив, преобразуется линка и т.д.
Это ж пустая нагрузка на сервер.
Не проще ли кешировать результат отработки такого ПХП кода? Я и говорю, про тег типа <!--php ... -->
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP в темплейтах. Не кеширует результат

Post by admin »

Да, пустая, но допустим у вас миллион траффика в чем есть сомнения
по тестам у меня на ноуте весь этот код на миллион запусков это примрено 10 секунд времени на серваке это будет секунд 6 например. Из 86400 в сутках.

те мы говорим о повышении нагрузки на примерно 0.000007%
Don't forget to run script update
Post Reply