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[дата устаревания]
Берется минимальное время хранения кода.
Содержание раздела