注: キャッシュ ファイルがブラウズするたびに変更される場合は、Smarty の Force_compile を参照してください。 Smarty が呼び出されるたびにテンプレートが (再) コンパイルされます。この設定は $compile_check によって制限されません。デフォルトでは無効になっています。開発やデバッグには非常に便利ですが、キャッシュが有効になっている場合は、毎回キャッシュ ファイルが再生成されます。
その名前が示すように、グローバル キャッシュは、ページ全体を参照し、キャッシュ ファイルの生存時間を指定すると、指定した時間内にページ全体を再度閲覧すると、キャッシュ ファイルが直接読み取られます。
$query = mysql_query($sql);
$row = mysql_fetch_row($query);
$smarty->assign("loaddatabase",$row[1]);
}
ここで別の問題が発生します。データベース内で何かを変更し、表示コンテンツを更新したいが、キャッシュの有効期限がまだ切れていない場合、どうすればよいでしょうか?
$smarty->clearCache("index.tpl");
上記のclearCacheは、データを更新した後にclearCacheを呼び出すだけでこの問題を解決できます。
追記: Smarty3 バージョンを使用しています。このバージョンでは多くのメソッドの名前が変更されています。Smarty2 の場合、「$smarty->is_cached() を使用してください。」と表示されます。 。
後で登場する Smarty3:registerPlugin() と Smarty2:register_block() もバージョンの問題です。
キャッシュありとなしの速度の比較を見てみましょう: 1. 初めての閲覧、キャッシュなし 合計時間 0.01421
2. 2 回目の閲覧では、合計時間 0.00308
が存在します。
ここでは、index.php のコードは数行しかありませんが、データ量が多い場合は、明らかな違いが生じます。
部分キャッシュ技術
部分キャッシュ = ページのキャッシュです。すべてのキャッシュが生成されるわけではありません。特定の機能モジュールをカスタマイズして、閲覧するたびにデータが更新されます。
例: Web ページ ユーザー ステータス、Web ページ統計、広告バナーなどを表示します。これらのデータは非常に速く更新されるため、キャッシュには適していません。このように、ローカル キャッシュは便利です。
ローカル キャッシュには 3 つの方法があります:
1. Insert メソッド
insert に含まれるコンテンツはキャッシュされず、テンプレートが呼び出されるたびに関数が再実行されます。ここでの関数名に注意してください。関数名は insert で始まる必要があり、テンプレート内の名前はそれに対応しています。
index.php
コードをコピーします
コードは次のとおりです: //insertと通常のassignの違いをテストする時間を定義します$date = date("Y-m-d H:i:s ");
$ Smarty->assign("date", $date);
//insert
function insert_get_current_time($date){
return date("Y-m-d H:i:s");
}
Index.tpl
コードをコピーします
コードは次のとおりです: nocache:{insert name="get_current_time"} cache: {$date}
[code]
次に、生成されたキャッシュ ファイルを確認します。 : insert が毎回テンプレートを呼び出すという結論を導き出します 関数が再実行されます
nocache:),$_smarty_tpl);?>
cache: 2012-06- 04 15:46:52
コードをコピー
コードは次のとおりです: この方法は簡単ですが、表示するコンテンツが大きい場合は使用しないでください。
2. 動的ブロックメソッド
phpのカスタムブロック
index.php
[code]
//smarty 3
//関数宣言
function Smarty_block_nocache ($param,$content,$smarty)
{
return $content ;
}
// Smarty に登録します
$smarty->registerPlugin("function","nocache", "smarty_block_nocache");
冒頭で述べたように、Smarty3 は registerPlugin を使用し、Smarty2 は register_block を使用します
index .tpl
{nocache}{$date}{/nocache}
次に、キャッシュ ファイルを確認して、テンプレートが呼び出されるたびに $date が再実行されると結論付けます
[/code]
tpl_vars['date']->value;?>
コードをコピーします
コードは次のとおりです: 3. このメソッドは次のようなものです。 2 つ目は、php を追加するだけです。カスタム ブロックは、smarty ディレクトリの plugins フォルダーに配置されます。
次の内容を含むファイル block.nocache.php を Smarty/plugins ディレクトリに作成します。
function Smarty_block_nocache($param, $content, $smarty)
{
return $content;
?>
[code]
tpl テンプレートでの使用方法は 2 番目のメソッドと同じです
Smarty キャッシュ テクノロジーは Web サイトの速度と品質を大幅に向上させることができ、その使用方法は比較的簡単であると結論付けることができます。
最後の注意点は、Smarty によって生成されたキャッシュ ファイルの拡張子は php ですが、php コードとして解析されないということです。
Author: That Moment
http://www.bkjia.com/PHPjc/325393.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/325393.html技術記事はじめに Smarty は、論理コードとユーザー インターフェイスを分離する優れた PHP テンプレート エンジンです。 キャッシュ技術を適用せずに Smarty を学習して使用することは大きな損失です...