2011-07-08 12 views
2

私はphpを使用するサイトで 'chat'をキャッシュする方法を理解しようとしており、渡される変数には変数ごとに固有のバージョンが必要です。つまり、id1のチャットキャッシュはid2と同じであってはいけません。なぜなら、id1はid2sプライベートメッセージを見る必要がないからです。 C#のでPHPでc#outputcacheと同等ですか?

、あなたに似たものを使用することができます。

<%@ OutputCache Duration="4" VaryByParam="param1;param3" %> 

これは、4秒間のページをキャッシュし、PARAM1とparam3は、キャッシュされたページの間で異なっている場合は独自のコピーをキャッシュします。

PHPにこのようなことはありますか?

+0

このチャットとキャッシュで達成しようとしていることだけを理解できれば助けてください。どういうわけか、あなたはここでセッションを扱っているようです。 –

+0

私は4秒ごとにページをキャッシュしたいが、そのキャッシュを必要な変数ごとに一意にすることができる。変数の型は結果に影響を与えるべきではありません。 – JClaspill

+0

どういうわけか私は理解していますが、これはあなたがPHPスクリプトをノンストップで実行したいと思うように私に聞こえるでしょうか? C#アプリケーションはメモリにロードされ、独立して実行されます。 PHPは、スクリプトホスト内で実行されるスクリプトです。あなたは無限にループしてその間を寝ることができますが、それはWebサーバーではうまくいきません。 Webサーバーは、スクリプトホストが何らかの点でレスポンス(HTMLページ)または500エラーの応答を受け取ると呼び出します。 –

答えて

1

PHPには出力キャッシュが組み込まれていません。独自の実装(あなたが話しているようなものにはそれほど難しくありません)を書くか、既存の実装を使用する必要があります。私は、Smartyテンプレートエンジンにも同様のものが組み込まれていると信じていますが、それほど時間がかかりすぎることはありません。

独自の実装を書くつもりなら、データをキャッシュするためにmemcachedを調べます。

$ cachekey = "chat_param1:"のように、このようなキーを作成するだけで済みます。 $ param1。 '-param3:' $ param3);

あなたはparam1とparam3の可能な値ごとに一意のキーを持っています。

関連する問題