[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [async] fetch url
- From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 20 Nov 2001 14:20:12 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 02317
- References: <ulmh2dp2n.wl@ENDE.atomsystem.co.jp>
>> On Tue, 20 Nov 2001 13:49:20 +0900
>> 「菅」== t-suga@atomsystem.co.jp (Taiki SUGAWARA) said as follows:
菅> 今のところ、これを使っていて一番問題だと思ってるのは、先読みしてい
菅> るときに同じページを読みに行くと w3m のプロセスが2つできてしまうこ
菅> とです。
えっと、それは有り得ないはずなのですが、具体的にどういう状況で起こりま
すか? w3m-process-push() で、新たな w3m-process オブジェクトを作成し、
そのオブジェクトを w3m-process-queue に登録する時点で、もしも同一の引
数で w3m を実行中ならば、その結果をまとめて利用するように設計されてい
ます。
;; あるページ内部で、同一の画像を複数個所で利用している場合には、この
;; 対策がないと、複数の w3m が並列に無駄に動作することになってしまいま
;; すから。
菅> 非同期で emacs-w3m を使っているときに、ページを先読みしておきたい
菅> 事が結構あったので先読みする関数、コマンドを作ってみました。
更に富豪的に、以下のような変更はいかがでしょうか? あるページを閲覧した
時点で、常に <link next="..."> を先読みするようになります。
;; 現時点では、先読み中に次のページを閲覧しようとすると、
;; w3m-process-stop() が先読み中のプロセスを終了させてしまうので、もう
;; 少し洗練する必要がありますけれど。
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.509
diff -u -u -r1.509 w3m.el
--- w3m.el 2001/11/20 04:00:12 1.509
+++ w3m.el 2001/11/20 05:13:12
@@ -2949,6 +2949,8 @@
(format " (exit status: %s)" w3m-process-exit-status)
"")))))))
+(defvar w3m-fetch-next-url-p t)
+
(defun w3m-prepare-content (url type output-buffer &optional content-charset)
(cond
((string-match "\\`text/" type)
@@ -2969,6 +2971,13 @@
(w3m-copy-local-variables result-buffer)
(set-buffer-file-coding-system w3m-current-coding-system)
(when (string= "text/html" type) (w3m-fontify))
+ (and w3m-fetch-next-url-p
+ w3m-async-exec
+ (stringp w3m-next-url)
+ (let ((next w3m-next-url))
+ (w3m-process-with-null-handler
+ (w3m-process-do-with-temp-buffer
+ (type (w3m-retrieve next nil nil nil nil handler))))))
t))))
((and (w3m-image-type-available-p (w3m-image-type type))
(string-match "\\`image/" type))
--
土屋 雅稔 ( TSUCHIYA Masatoshi )
;; えっと、[emacs-w3m:02309] の戯言は「作業します」って意味じゃなくて、
;; そうじゃなくて、「こうしたら楽かも?」という独り言です。と言うか、
;; ちょっと修羅場だったりして。