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

Re: cache



From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> さん曰く
Subject: [emacs-w3m:06356] cache (was: pukiwiki on Emacs-w3m)
Message-ID: <871xpx2uaq.fsf@pine.kuee.kyoto-u.ac.jp>
Date: Sun, 18 Jan 2004 23:41:33 +0900

> RFC2616 で規定されている cache validation をきちんと実装するのが筋だと
> は思います.ただ,それには暇が足りないので,とりあえず当面の処置として,
> 天海さんのパッチを改変して適用しました.

これなんですが、ぼくの場合は弊害の方が大きいので、問答無用で
cache するオプションを増設して良いですか?とりあえず、パッチを文
末につけます。

また、

> >pukiwiki 編集は, [編集] ボタンをおすと編集画面を GET してきて, フォー
> >ムを編集して, [更新] ボタンで POST します. 同じページを再び編集して,
> >[更新] すると, pukiwiki に「更新の衝突」が発生したと怒られます.

これが体験出来て、sandbox がついている Wiki ページをご存じでした
ら教えてください。問答無用で cache しても post するときになんと
かならないかなぁと思っています。

-- 
白井秀行 (mailto:shirai@meadowy.org)



Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.988
diff -u -u -r1.988 w3m.el
--- w3m.el	27 Jan 2004 23:43:33 -0000	1.988
+++ w3m.el	29 Jan 2004 03:33:45 -0000
@@ -684,6 +684,11 @@
   :group 'w3m
   :type '(integer :size 0))
 
+(defcustom w3m-follow-cache-control-header t
+  "*Follow the headers of chache control like 'Pragma:' and 'Cache-control:'"
+  :group 'w3m
+  :type 'boolean)
+
 (defcustom w3m-keep-cache-size 300
   "*Maximum number of pages to be cached in emacs-w3m."
   :group 'w3m
@@ -4046,12 +4051,13 @@
 	      (let ((header (buffer-substring (point-min) (point))))
 		(when w3m-use-cookies
 		  (w3m-cookie-set url (point-min) (point)))
-		(unless (prog1 (save-excursion
-				 (or (re-search-backward
-				      "^Pragma:[ \t]+no-cache\n" nil t)
-				     (re-search-backward
-				      "^Cache-control:[ \t]+\\(no-cache\\|max-age=0\\)\n"
-				      nil t)))
+		(unless (prog1 (and w3m-follow-cache-control-header
+				    (save-excursion
+				      (or (re-search-backward
+					   "^Pragma:[ \t]+no-cache\n" nil t)
+					  (re-search-backward
+					   "^Cache-control:[ \t]+\\(no-cache\\|max-age=0\\)\n"
+					   nil t))))
 			  (delete-region (point-min) (point)))
 		  (w3m-cache-header url header)
 		  (w3m-cache-contents url (current-buffer)))