と、キャッシュ。
同じクエリーを受けた場合、キャッシュしておいたHTMLを返せばいい。
何を同じだと見なすかはキャッシュの有効期限に。
キャッシュの有効期限 †
サーバー側キャッシュデータの有効期限は基本値に設定値を加えた物にする。
この設定値はWiki上で
ページの属性(RegExp)→値(負の値でも可)
という形で定義。
RegExpはページの属性どれにでも当てはめられるように。
一部更新したよフラグ †
なにかの処理でキャッシュを更新しても無駄にならなくなったらフラグON。キャッシュ更新したらOFF。
フラグ=キャッシュデータ。フラグOFFとはキャッシュの消去。
フラグの名前はキャッシュの名前…クエリー文字列に当てはめる正規表現。
それを管理するのはフレームワーク/Webアプリケーション。
作るのも名前を決めるのも(使う条件を決めるのも)同じ機能で。近くのコードに凝集して。
キャッシュを作ったり名前を登録したりするライブラリーは用意するが、それを使うかどうかは個々の機能次第。
作れば使われるが必要ではない。
キャッシュ作成ライブラリーはフレームワーク/Webアプリケーションのもの。
消すのは関係ある機能全てで可能。フラグOFF→キャッシュ再生成リクエストなので、キャッシュ名を知っていれば(キャッシュを作っている処理に依存していいなら)消せる。
消す場合、生成と更新をする機能が自身で消去。消去は更新の一種。
いろいろな所でメモ化 †
多段化。