Язык скриптования сайтов Parser 3

Opcache


cache. Сохранение результатов работы кода


^cache[файл](число секунд){код}

^cache[файл](число секунд){код}{обработчик проблем}   [3.1.2]

^cache[файл][дата устаревания]{код}

^cache[файл][дата устаревания]{код}{обработчик проблем}   [3.1.2]




Оператор сохраняет строку, которая получится в результате работы кода. При последующих вызовах обычно происходит считывание ранее сохраненного результата, вместо повторного вычисления, что сильно экономит время обработки запроса и снижает нагрузку на ваши сервера.

Крайне рекомендуется подключать модули (^use[…]) изнутри кода оператора cache, а не делать это статически (@USE).

По-возможности, работайте с базой данных (^connect[…]) также внутри кода оператора cache - вы существенно снизите нагрузку на ваш SQL-сервер и повысите производительность ваших сайтов.

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

Число секунд - время хранения результата работы кода в секундах. Если это число равно нулю, то результат не сохраняется, а файл с предыдущем сохраненным результатом уничтожается.

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

Код - код, результат которого будет сохранен.

Обработчик проблем - здесь можно обработать проблему, если она возникнет в коде. В этом отношении оператор похож на try, см. раздел «Обработка ошибок». В отличие от try, можно задать $exception.handled[cache] - это дает указание Parser обработать ошибку особенным образом: достать из файла ранее сохраненный результат работы кода, проигнорировав тот факт, что этот результат устарел.


Внутри кода допустимы команды, изменяющие время хранения результата работы кода:


^cache(число секунд)

^cache[дата устаревания]


Берется минимальное время хранения кода.

Пример

^cache[/data/cache/test1](5){

   Нажимайте reload, меняется каждые 5 секунд: ^math:random(100)

}


Изменение времени хранения

^cache[/data/cache/test2](5){

   по ходу работы вы выяснили, 

   что страницу сохранять не нужно: ^cache(0)

}

Copyright © 1997?2004 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 01.04.2004



Содержание раздела