[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: no-cache
※ "寺" こと teranisi@gohome.org さんの
『[emacs-w3m:01121] Re: no-cache』より
お騒がせして申し訳ありませんでしたが、結局、
土> 第3引数 no-cache が non-nil の時は常に、
寺> w3m が出す HTTP リクエストのヘッダに
寺> Pragma: no-cache
寺> Cache-Control: no-cache
寺> をつけたいってことなんですよね。
土> するようにすれば良いのではないでしょうか。
というふうな対応をしてみました。
ただし、w3m-retrieve でなく、w3m-w3m-retrieve にしました。
寺> 第 3 引数の no-cache は Emacs 上にあるキャッシュを使うかどうかですよね。
寺> よくわかってないんですが、HTTP リクエストに毎回
寺> Pragma: no-cache
寺> Cache-Control: no-cache
寺> を付けられると、キャッシュサーバが If-Modified-Since を使わず、
寺> かならず body を取り寄せ直してしまって
寺> うれしくないのではないかと思いました。
私もそう思ったんですが、実際、このオプションが必要なケースは
めったにないと思いますので、
w3m-no-proxy-cache-for-foolish-server という変数を定義して、
これが non-nil でかつ no-cache 引数が non-nil だった場合のみ
"-o no_cache=1" をつけるというふうにしてみました。
これでよかったらマージしてもらえると助かります。
よろしくお願いします。(_ _)
そうそう、w3m-dump-head-source-command-arguments は list で
いいんですよね?
---
6/8 23:17頃
NECソフトウェア新潟 水戸
Index: ChangeLog
===================================================================
RCS file: c:/mit/cvsroot/emacs-w3m/ChangeLog,v
retrieving revision 1.1.1.8
diff -b -u -b -r1.1.1.8 ChangeLog
--- ChangeLog 8 Jun 2001 13:16:21 -0000 1.1.1.8
+++ ChangeLog 8 Jun 2001 14:05:33 -0000
@@ -1,3 +1,11 @@
+2001-06-08 Mito <mit@nines.nec.co.jp>
+
+ * w3m.el (w3m-no-proxy-cache-for-foolish-server): New variable.
+ (w3m-dump-head-source-command-arguments): Change the value to
+ list.
+ (w3m-w3m-retrieve): No use cache on proxy server when `no-cache'
+ and `w3m-no-proxy-cache-for-foolish-server' in non-nil.
+
2001-06-08 TSUCHIYA Masatoshi <tsuchiya@namazu.org>
* w3m.el (w3m-w3m-retrieve): Remove URL's fragment before checking
Index: w3m.el
===================================================================
RCS file: c:/mit/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.1.1.7
diff -b -u -b -r1.1.1.7 w3m.el
--- w3m.el 8 Jun 2001 13:16:24 -0000 1.1.1.7
+++ w3m.el 8 Jun 2001 13:59:28 -0000
@@ -576,6 +576,13 @@
(file :tag "path of 'dirlist.cgi'"
"/usr/local/lib/w3m/dirlist.cgi")))
+(defcustom w3m-no-proxy-cache-for-foolish-server nil
+ "*If non nil, no use cache on proxy server.
+This option should be used only if your proxy server is very
+foolish."
+ :group 'w3m
+ :type 'boolean)
+
(eval-and-compile
(defconst w3m-entity-alist ; html character entities and values
(eval-when-compile
@@ -798,7 +805,7 @@
"Regexp used in parsing to detect string."))
(defconst w3m-dump-head-source-command-arguments
- (if (eq w3m-type 'w3mmee) "-dump=extra,head,source" "-dump_extra")
+ (if (eq w3m-type 'w3mmee) '("-dump=extra,head,source") '("-dump_extra"))
"Arguments for 'dump_extra' execution of w3m.")
(defvar w3m-halfdump-command nil
@@ -2075,13 +2082,21 @@
(set-buffer-multibyte nil)
(when (string-match "#\\([^#]+\\)$" url)
(setq url (substring url 0 (match-beginning 0))))
- (let ((type
+ (let (type
+ (w3m-command-arguments w3m-command-arguments)
+ (w3m-halfdump-command-common-arguments
+ w3m-halfdump-command-common-arguments))
+ (when (and no-cache w3m-no-proxy-cache-for-foolish-server)
+ (dolist (var '(w3m-command-arguments
+ w3m-halfdump-command-common-arguments))
+ (set var (append (symbol-value var) '("-o" "no_cache=1")))))
+ (setq type
(or (unless no-cache
(and (w3m-cache-request-contents url)
(w3m-content-type url)))
(car (if (memq w3m-type '(w3m-mnc w3mmee))
(w3m-w3m-dump-head-source url)
- (w3m-w3m-dump-source url))))))
+ (w3m-w3m-dump-source url)))))
(when type
(or no-decode
(w3m-decode-encoded-contents (w3m-content-encoding url))