投資家tmhiknのブログ

記事一覧
アクセスランキング

スポンサーサイト

--.--.-- (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DocumentCompleteが発生しない

2013.09.26 (Thu)
とあるサイトをVB.NET2010でNavigateした際に読み込みが完了してもDocumentCompleteが発生しなくなりました。
そのサイトは非公開とします。もしかしたら意図的に対策をしているのかもしれないので困るから。笑
どうもこのようなことはまれにあるようです。以下参照
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200710/200710_07100042.html
(↑.NET以前のものなので古いです。)
http://bbs.wankuma.com/index.cgi?mode=al2&namber=56202&KLOG=94

自分で調べたところ、憶測が入ってますが、DocumentCompleteが発生する状態とは
WebBrowser1.IsBusy = False
かつ
WebBrowser1.ReadyState = WebBrowserReadyState.Complete
の場合のようです。
最初にあげたURLの場合、
WebBrowser1.ReadyState.ToString
が"Interactive"になっていました。これは"Complete"の一歩手前の状態のようで「ハイパーリンクをクリックするなどユーザーが限定的な操作ができる状態」とのことです。(Timerコントロールでチェックしましたが変化しません。)なぜ"Complete"まで行かないのかはわかりません。一部にはバグではないかとも言われています。
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200303/03030118.txt
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1346707113

ちなみにその"Interactive"の状態でも
WebBrowser1.StatusText
は"完了"と表示されています。

またページ上にあちこちのサーバーにリンクが張られていて、データをなかなか返してこないサーバがある場合にDocumentCompleteが発生しない場合もあります。その場合はWebBrowser1.StatusTextを見ればどこのURLを読み込み中なのかがわかります。ずっと読み込み中なのでDocumentCompleteが発生しないのは当たり前ですが、この場合は適当にタイムアウト処理をするしかないと思います。WebBrowser1.StatusTextはマウスポインタをURLリンク上に持っていくと変わってしまうので注意してください。

参考になった方は拍手お願いします。

コメント


管理者のみに表示

トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。