display("$module/list. html",$_SERVER[" REQUEST_U"/> display("$module/list. html",$_SERVER[" REQUEST_U">

ホームページ  >  記事  >  バックエンド開発  >  投稿後のSMARTYのclearCache記事リストのロジックを教えてください。

投稿後のSMARTYのclearCache記事リストのロジックを教えてください。

WBOY
WBOYオリジナル
2016-06-13 12:04:30840ブラウズ

投稿後のclearCache記事リストのロジックについてSMARTYにアドバイスしてください
記事リストのサムルティコードは次のとおりです

<br />$smarty -> setCacheDir(ROOT_PATH."/cache/forum");<br />$smarty -> display("$module/list.html",$_SERVER["REQUEST_URI"]);

ROOT_PATH = 私のルートディレクトリ
$module = 私のPHPは先頭に現在のモジュールを置き、テンプレート内のサブディレクトリを自分で見つけてください

記事、アーキテクチャ、モジュールがたくさんあるため... そこで、キャッシュとテンプレートの両方をサブディレクトリに作成することを考えました
ファイル
キャッシュ サブディレクトリ... は、同じディレクトリ内にファイルが多すぎるのではないかと心配しているためです。また、サブディレクトリを使用すると、さまざまなモジュール
に従ってキャッシュをクリーンアップすることもできます。
表示に文を追加しました: $_SERVER[ "REQUEST_URI"]

ページングなので、他の変数がある可能性があります

ページには最大 3 つのパラメータがある可能性がありますlist.php?fid=1&type=20&page=3

fid=column (必須)
type=topic 分類 (状況により、あるページとないページがあります)
page=現在のページ (存在する必要があります)

パラメータが異なるため、異なるファイルが生成される可能性があります

smarty を使用するのは主にデータベースへの負荷を軽減するためです



質問 1.

post.php というページに記事を公開しています

いくつかの基本的なデータがあります$fid = 1 (列 ID) など、パブリケーションが完了したら、この列 ID を使用して、コース列のキャッシュをクリアします

これがそれです: list.php?fid=1&type= 20&page=3

関連する fid = 1 をすべてクリアする方法はありますか?

fid = 1 である限り、他のパラメーター type=100 または type=5 に関係なく、すべてのページが削除されます。 =xxx be updated?



質問 2.
SMARTY 公式とインターネットで見つけた紹介....
キャッシュのクリアにはこの文しかありません
clear_cache('index.tpl',cache_id);//清除指定id的缓存


指定されたディレクトリをクリアできません
上で説明したように、テンプレートのサブディレクトリを使用しているため



質問 3.
経験上の質問

よりリアルタイムであり、Web サイトに多くの人がアクセスしている場合、問題 1 と 2 を解決します。代わりにサムルティのキャッシュ時間を 10 秒に設定します

長期的な場合は 500~ 2,000 人のユーザーがいる Web サイト、ユーザーが頻繁にメッセージを残したりコミュニケーションしたりする Web サイト

を設定した場合キャッシュを約 10 秒にすると、キャッシュしないよりもストレスがかかりますか???

同じ状況の皆さん、トラフィックは増加しますか... 記事に返信/投稿するたびにキャッシュをクリアしてください。キャッシュをあきらめますか?



申し訳ありませんが、皆さんに捧げることはもうあまりありません

真剣に勉強してください
-- ---解決策--------------------
それは奇妙です、リアルタイムにもっと注意を払うので、キャッシュを使用しないでください。
キャッシュを使用したい場合でも、イベントが実行されるたびに、対応するキャッシュを再生成する必要があります。この方法でのみリアルタイム効果を実現できます。

記事リストについては、1 日のうち 1 分ごとに新しい記事を追加または修正した場合。その場合、キャッシュはあまり役に立ちません。

1日以内の場合は新規記事や修正が少ない可能性がございます。それはバックグラウンドでの機能である可能性があります。を呼び出すと、リストのキャッシュがクリアされます。

実際、皆さんはキャッシュを保存するためのパスとディレクトリのルールを知っています。なぜ、smarty に付属しているものをわざわざ使用する必要があるのでしょうか。
Smarty はキャッシュ ID に基づいて判断しますが、これは状況には適していません。
------解決策------------------
これはあなたの特定のアプリケーションに関連しています
フォーラム注目を集めるために、常に新しい投稿と新しい返信を最初に配置してください
したがって、キャッシュは無意味です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。