[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: cache



cache 周辺を,以下のロジックで動くように adhoc に修正しました.

>> On Thu, 29 Jan 2004 13:03:29 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:

土> (1) 問答無用に cache してしまう.

土> (2) w3m-view-previous-page / w3m-view-next-page などでヒストリ上を
土>     移動する場合,および,w3m-view-source / w3m-view-header などの
土>     同一コンテンツ内の移動は,cache を信用する.

それから,about://history/ および about://db-history/ からの移動の場合
も cache を信用します.

土> (3) w3m-view-this-url などで移動する場合は cache validator を呼び
土>     出す.正式の cache validator は大変だから当面は以下の検査で代
土>     替する.

この点については,[emacs-w3m:06420] での

>> On Fri, 30 Jan 2004 16:40:33 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:

土> というわけで,reload 時にはヒストリに記憶されている値を無視した方
土> が良いのではないかと思うのですが,どうでしょうか?

土> ただ,reload しないと駄目と言うのは,現行の cache システムの問題で
土> しょうね.Last-Modified とか ETag の情報が存在しない場合は,cache 
土> しないことにしないといけないのかなあ.

という知見に基づいて,

  (a) Last-Modified: または ETag: がヘッダに含まれていない cache は信
      用しない.
  (b) たとえ,これらのヘッダが含まれていても,Pragma: no-cache などの
      ヘッダによって明示的に無効化されていたら信用しない.

という判断を行います.検証手順の詳細については w3m-cache-available-p() 
を参照してください.

この修正の結果,

土> ただ,PukiWiki の編集でのトラブルは cache 周りだけの問題ではない可能性
土> もあります.例えば,私の近所で WiLiKi を使っているのですが,

土> あるページを編集してテキストを追加
土>     -> コミット
土>     -> 成功
土>     -> 同じページを編集しようとしたら,さっき追加したテキストがない
土>     -> もう一度編集してコミット
土>     -> 更新の衝突

土> という現象が起きています.

という現象は解決しました.

なお,cache を常に信用する従来の動作の方が都合が良い人は,

    (setq w3m-prefer-cache t)

という指定を ~/.emacs-w3m に書いてください.

全体的に cache をあまり信用しないようになったので,安全にはなったので
すが,要らないところで reload してしまうようになった気もします.もう少
し,cache を有効に使う方法はないでしょうか?

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )