Files
smarty/docs/ru/programmers/api-functions/api-is-cached.xml

107 lines
4.0 KiB
XML
Raw Normal View History

2008-01-22 21:04:44 +00:00
<?xml version="1.0" encoding="UTF-8"?>
2004-04-13 11:47:32 +00:00
<!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: tony2001 Status: ready -->
<refentry id="api.is.cached">
<refnamediv>
<refname>is_cached</refname>
<refpurpose></refpurpose>
</refnamediv>
<refsect1>
<title />
<methodsynopsis>
<type>bool</type><methodname>is_cached</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
</methodsynopsis>
<para>
2008-01-22 21:04:44 +00:00
Возвращает true если существует кэш для указанного шаблона.
Работает только в том случае, если значение <link
linkend="variable.caching">caching</link> установлено в true.
</para>
<example>
<title>is_cached</title>
<programlisting role="php">
<![CDATA[
<?php
2004-04-13 11:47:32 +00:00
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) {
2008-01-22 21:04:44 +00:00
// обращаемся к БД, назначаем переменные
2004-04-13 11:47:32 +00:00
}
$smarty->display("index.tpl");
?>
]]>
</programlisting>
</example>
<para>
2008-01-22 21:04:44 +00:00
Также вы можете передавать cache id в качестве необязательного второго
параметра, если у вас используется множественное кэширование шаблона.
</para>
<para>
2008-01-22 21:04:44 +00:00
Также вы можете передавать compile id в качестве необязательного третьего параметра.
Если вы не передадите этот параметр, будет использован текущий
<link linkend="variable.compile.id">$compile_id</link>.
</para>
<para>
2008-01-22 21:04:44 +00:00
Если вы не хотите передавать cache id, но хотите передать compile
id, вы должны передать <literal>null</literal> в качестве cache id.
</para>
<example>
2008-01-22 21:04:44 +00:00
<title>is_cached при множественном кэшировании шаблона</title>
<programlisting role="php">
<![CDATA[
<?php
2004-04-13 11:47:32 +00:00
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl", "FrontPage")) {
2008-01-22 21:04:44 +00:00
// обращаемся к БД, назначаем переменные
2004-04-13 11:47:32 +00:00
}
$smarty->display("index.tpl", "FrontPage");
?>
]]>
</programlisting>
</example>
<note>
2008-01-22 21:04:44 +00:00
<title>Техническое замечание</title>
<para>
2008-01-22 21:04:44 +00:00
Если <literal>is_cached</literal> возвращает true, при этом она загружает
кэшированный вывод и хранит его в памяти. Любые последующие вызовы
<link linkend="api.display">display()</link> или
<link linkend="api.fetch">fetch()</link>
2008-01-22 21:04:44 +00:00
будут возвращать этот хранимый в памяти вывод и не будут пытаться перезагрузить
файл кэша. Это предотвращает неприятную ситуацию, которая может возникнуть если
другой процесс очищает кэш между вызовами is_cached и
display в предыдущем примере. Это также означает, что
<link linkend="api.clear.cache">clear_cache()</link>
2008-01-22 21:04:44 +00:00
и другие изменения настроек кэширования могут не вступить в силу после того, как
<literal>is_cached</literal> вернула true.
</para>
</note>
</refsect1>
</refentry>
2004-04-13 11:47:32 +00:00
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->