C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: WebBrowserのキャッシュが残ってる?


(過去ログ 103 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■61524 / inTopicNo.1)  WebBrowserのキャッシュが残ってる?
  
□投稿者/ 近藤です (1回)-(2011/08/18(Thu) 13:43:37)

分類:[C#] 

WebBrowserのキャッシュが残ってるのか、いくつかのURLを続けて読み込んでサイトのタイトルを取得していると、
例えば、3番目のURLでWebBrowserに表示させタイトルを取得すると、2番目に読み込んだサイトのタイトルが取得されることがまれにあります。
毎回必ず起きるというわけでもなく、同じURLで必ず起きるというわけでもなく、何が起きているのかいまいちわかりません。
考えられる原因ってわかりますか?
対処法もあればお願いします。

引用返信 編集キー/
■61525 / inTopicNo.2)  Re[1]: WebBrowserのキャッシュが残ってる?
□投稿者/ 魔界の仮面弁士 (2314回)-(2011/08/18(Thu) 14:15:03)
No61524 (近藤です さん) に返信
> 例えば、3番目のURLでWebBrowserに表示させタイトルを取得すると、2番目に読み込んだサイトのタイトルが取得されることがまれにあります。
それは、DocumentTitleChanged イベントが発生しない、ということでしょうか?

それとも、DocumentTitleChanged イベントは発生するのだけれども、
そのタイミングで得た DocumentTitle が前サイトのタイトルになるということでしょうか?


> 対処法もあればお願いします。
マネージの DocumentTitleChanged イベントでは思うような結果が得られないのであれば、試しに
COM 版の TitleChange イベントで渡される sText 引数からタイトルを得るようにしてみるとか。
引用返信 編集キー/
■61526 / inTopicNo.3)  Re[2]: WebBrowserのキャッシュが残ってる?
□投稿者/ 近藤です (2回)-(2011/08/18(Thu) 14:31:46)
DocumentTitleChangedイベントも発生していました。
WebBrowserReadyState.CompleteプロパティやIsBusyメソッドで描画を完了させてから取得しているのですが、
取得できないことがあります。

ちなみにRefreshメソッドは通常どこに入れますか?
私はNavigateする前に入れているのですが。

引用返信 編集キー/
■61527 / inTopicNo.4)  Re[3]: WebBrowserのキャッシュが残ってる?
□投稿者/ アリタ (1回)-(2011/08/18(Thu) 15:47:29)
2011/08/18(Thu) 15:48:44 編集(投稿者)

No61526 (近藤です さん) に返信
> WebBrowserReadyState.CompleteプロパティやIsBusyメソッドで描画を完了させてから取得しているのですが、
> 取得できないことがあります。

具体的にどのようにこれらプロパティを判定しているのか確認したいので、コードを見せてもらえますか?
ちなみに、WebBrowserReadyState.Completeは、WebBrowserのReadyStateプロパティの値(列挙型)で、
IsBusyはメソッドではなくプロパティです。
※失礼ながら、このような誤記があると、本当にこれらプロパティを正しく使用しているのか疑問に感じましたので
 上記の質問をしました。


> ちなみにRefreshメソッドは通常どこに入れますか?
> 私はNavigateする前に入れているのですが。

Refreshメソッドは、私はリロード以外では通常使っていません。
(Refreshを行っても、DocumentCompletedイベントは発生ないという理由もありますが。)
今回のケースでも不要ではないかと思います。
Refreshを行うがために、WebBrowserのReadyStateプロパティの値やIsBusyプロパティを参照しようとして
おかしなことになっている可能性もあるかも知れません。
引用返信 編集キー/
■61531 / inTopicNo.5)  Re[3]: WebBrowserのキャッシュが残ってる?
□投稿者/ 魔界の仮面弁士 (2315回)-(2011/08/18(Thu) 16:43:55)
No61526 (近藤です さん) に返信
> DocumentTitleChangedイベントも発生していました。
> WebBrowserReadyState.CompleteプロパティやIsBusyメソッドで描画を完了させてから取得しているのですが、
> 取得できないことがあります。

取得タイミングは、プロパティ監視で行うのではなく、
イベントを通じて得ることをお奨めします。

通信中であっても、タイトル部は比較的早期に決定されますし、
読み込み完了後であっても、JavaScript 等でタイトルが変更される可能性があります。
http://iswebmag-hp.web.infoseek.co.jp/180/sample01.html


> ちなみにRefreshメソッドは通常どこに入れますか?
強いて言えば、「再読込ボタン」とか。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -