Smarty を使用する場合、天気、株価、リアルタイムで更新されるその他の情報など、ページ全体をキャッシュしたくないことがよくあります。次に、キャッシュされないようにすることができます。一般的な実装方法には次の 3 つの方法があります。
1.メソッドの挿入:
Insert 関数は inluce 関数に似ていますが、insert に含まれるコンテンツはキャッシュされず、テンプレートが呼び出されるたびに関数が再実行される点が異なります。たとえば、時間を表示する関数を定義してみましょう:
コードをコピーします コードは次のとおりです:
function insert_get_current_time() {
return date("H:i:s");
}
//テンプレート内:
{名前を挿入="get_current_time" }
このようにして、ページを開くたびに、キャッシュされた時間の代わりにリアルタイム時間が表示されます。ここでの関数名は insert で始まる必要があり、テンプレート内の名前はそれに対応していることに注意してください。関数にパラメーターが含まれている場合、テンプレートは次のようになります:
コードをコピーします コードは次のとおりです:
{insert name="get_current_time" hidden=#banner_location_id# sid=#site_id#}
//次に、Smarty は insert_get_current_time(array( "lid"=> ;"12345","sid"=>67890"));
返された結果を呼び出し元の場所に表示します。
2. 動的ブロック メソッド:
スマートなコード内:
コードをコピーします。 コードは次のとおりです。
function Smarty_block_nocache ($ Param, $ Smart, $ SMARTY) {return $ Content ' ,false);
テンプレートファイル内:
コードをコピーします
コードは次のとおりです:
<{nocache}> // キャッシュする必要のないコンテンツをここに配置します
3. プラグインブロック方法:
これはブロックと似ていますが、プラグインの形式で実行します。 Smarty/plugins ディレクトリにファイル block.nocache.php を作成します。ここでの名前付けは標準化する必要があります。そうしないと、smarty が認識できません。 内容は以下の通りです
コードをコピーします
コードは次のとおりです:
function Smarty_block_nocache($param,$content,$smarty)
{return $content;}
キャッシュする必要のないテンプレート上に nocache を追加するだけです。
http://www.bkjia.com/PHPjc/825341.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/825341.html
技術記事 Smarty を使用する場合、天気、株価、その他のリアルタイムで更新される情報など、ページ全体をキャッシュしたくないことがよくあります。次に、キャッシュされないようにすることができます。一般的な実装は次のとおりです...