rNoteの特徴の一つに、動的生成でありながら、キャッシュ制御により静的生成とほぼ同等のサーバー負荷及び速度を実現している、という点があります。
キャッシュは大きく2つ、ブラウザのキャッシュと、サーバーに作成されるキャッシュがあります。
ブラウザのキャッシュは、If-Modified-Since応答によって制御されます。
カウンタ等、毎回内容が変わる類のものをプラグインとして作成すると、現在の正しい数値ではなく、ブラウザのキャッシュの内容が表示されてしまい、カウンタであれば「何か数値がおかしい」という事になっていまします。
カウンタを付けたい場合は、プラグインではなく、画像式のCGIをご利用下さい。
もしくは(xhtmlとしては問題がありますが)インラインフレームで動作させるというのも手でしょう。
勿論、If-Modified-Since応答自体を止めるというのも一つの方法です(あまりお勧めはしませんが…)。
なお、CGI版PHP上で動作してる場合、If-Modified-Since応答は行われません。
サーバーに作成されるキャッシュの方は、以下のタイミングでリフレッシュされます。
- 再構築
- BBS/ツッコミの書き込み・トラックバック受信
- 新規リンク先の受信(カウントアップではリフレッシュは行われません)
プラグイン呼び出しで <%=$plugin% name="..." cache="off"> と記述すると、サーバー側のキャッシュには結果が保存されず、出力直前に毎回プラグインが呼ばれるようになります。
