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

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

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

Re[8]: PictureBoxでネット上の画像表示時の不具合


(過去ログ 58 を表示中)

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

■32831 / inTopicNo.1)  PictureBoxでネット上の画像表示時の不具合
  
□投稿者/ akkima (1回)-(2009/02/16(Mon) 11:44:32)

分類:[VB.NET/VB2005 以降] 

はじめまして、akkimaといいます。
ネットで調べても解決策が分からないのでご教授お願いいたします。

VB2005で

picturebox1.LoadAsync("http://xxx.co.jp/image.jpg")

としてPictureBoxにWebサーバ上(apache)の画像を表示させているのですが、
FFFTP(別ソフトウェア)でWebサーバ上の画像を別の画像に書き換え後に再度

picturebox1.LoadAsync("http://xxx.co.jp/image.jpg")

を実行しても変更前の画像がロードされます。
ブラウザ(IE7)のキャッシュにアクセスされているのかと思い
インターネットオプションからキャッシュを削除しても変更前の画像がロードされます。

最新のWebサーバ上の画像をロードさせる方法の情報を
お持ちの方がいましたら、ご教授お願い致します。

引用返信 編集キー/
■32845 / inTopicNo.2)  Re[1]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ 出水 (114回)-(2009/02/16(Mon) 16:55:07)
再現しません
pictureboxをおいて、buttonを押したらLoadAsyncが走るコードを書いて実験してみましたが
ボタンを押すたびに新しい画像に切り替わります

他のブラウザーなどではリロードするたびに画像がきりかわるか、や
LoadAsyncにブレークポイントを置いて関数をちゃんと呼び出しているか確認してみてください
引用返信 編集キー/
■32851 / inTopicNo.3)  Re[1]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ よねKEN (265回)-(2009/02/16(Mon) 17:25:59)
可能性の一つでしかありませんが、
1回目のLoadAsyncメソッドが完了しないうちに2回目のLoadAsyncメソッドが
呼び出されているということはないでしょうか?

PictureBox.LoadAsyncメソッドのソースを読むとLoadAsyncが処理中の場合は、
何もせずにreturnするようです。
引用返信 編集キー/
■32863 / inTopicNo.4)  Re[2]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ 倉田 有大 (440回)-(2009/02/17(Tue) 00:17:28)
No32851 (よねKEN さん) に返信
> 可能性の一つでしかありませんが、
> 1回目のLoadAsyncメソッドが完了しないうちに2回目のLoadAsyncメソッドが
> 呼び出されているということはないでしょうか?
>
> PictureBox.LoadAsyncメソッドのソースを読むとLoadAsyncが処理中の場合は、
> 何もせずにreturnするようです。

こんなメソッドあったんですね(オイ
じゃあ、LoadAsyncが終わったことを検知する方法もあるはずですが・・もう今日は疲れたので寝させていただきます。ググるきりょくが・・バタン
引用返信 編集キー/
■32867 / inTopicNo.5)  Re[3]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ みきぬ (383回)-(2009/02/17(Tue) 09:40:53)
> じゃあ、LoadAsyncが終わったことを検知する方法もあるはずですが・・もう今日は疲れたので寝させていただきます。ググるきりょくが・・バタン

ググるまでもなく、PictureBox クラスのイベントにあるだろなーという想像はつきます。

# と、念のため存在を確認してから書き込むチキンな私
引用返信 編集キー/
■32872 / inTopicNo.6)  Re[4]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ akkima (2回)-(2009/02/17(Tue) 10:20:35)
2009/02/17(Tue) 10:57:08 編集(投稿者)
2009/02/17(Tue) 10:24:05 編集(投稿者)
2009/02/17(Tue) 10:22:25 編集(投稿者)
2009/02/17(Tue) 10:21:02 編集(投稿者)
2009/02/17(Tue) 10:20:56 編集(投稿者)

返信ありがとうございます。

>出水さん
再現しないとのことで、私もボタンを押すと
picturebox1.LoadAsync("http://xxx.co.jp/image.jpg")
だけを実行するプロジェクトを作ってためしたところ、たしかに再現しませんでした。

ただ、どういう条件でなるのかいまひとつ分かりませんでしたが、
Firefox3でhttp://xxx.co.jp/image.jpgにアクセスし、FTPで画像を変更後、Firefoxの更新ボタンを押しても
Firefoxで画像が切り替わらなくなることがありました。その場合VBでも画像が切り替わりませんでした。

Firefox3でCtrl+F5で更新させると変更後の画像がきちんと表示され、VBでも画像が切り替わっていました。
やっぱりブラウザのキャッシュなのかもしれません・・・。

>よねKENさん
>PictureBox.LoadAsyncメソッドのソースを読むとLoadAsyncが処理中の場合は、
>何もせずにreturnするようです。
私のソースではpicturebox1.LoadCompletedイベントでロードが完了するまでボタンのenable=falseにしています。
だから、たぶんLoadAsyncメソッドは完了しているはずだと思います。

>倉田 有大さん
LoadProgressChangedイベントでロード進行状況
LoadCompletedイベントでロード完了が取得できますよ。

-----
一応解決したっぽい?ので報告いたします。
とりあえず全てのブラウザのキャッシュやらセッションやらを削除する。

picturebox1.LoadAsync("http://xxx.co.jp/image.jpg?" & Now.Year & Now.Month & Now.Day & Now.Hour & Now.Minute & Now.Second)
と最後に"?日付"を加えて常にアドレスを変えるようにしました。
これはhttp://support.adobe.co.jp/faq/faq/qadoc.sv?228621+002を参考にしました。

ブラウザでhttp://xxx.co.jp/image.jpgにアクセスしない。

これで過去の画像が表示されるという現象は発生しなくなりました。
"?a"が有効なのかどうか分かりません。
というか結局ブラウザのキャッシュが原因だったのかもしれません。(その場合は申し訳ありません。)

みなさんどうもありがとうございました。
-----
解決済み
引用返信 編集キー/
■32873 / inTopicNo.7)  Re[5]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ みきぬ (384回)-(2009/02/17(Tue) 10:21:50)
No32872 (akkima さん) に返信
> >倉田 有大

しむらー、呼び捨て! 呼び捨て!
引用返信 編集キー/
■32876 / inTopicNo.8)  Re[6]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ akkima (3回)-(2009/02/17(Tue) 10:24:41)
2009/02/17(Tue) 10:43:52 編集(投稿者)

No32873 (みきぬ さん) に返信
> ■No32872 (akkima さん) に返信
>>>倉田 有大
>
> しむらー、呼び捨て! 呼び捨て!

すみません(^^;)
修正しました。
解決済み
引用返信 編集キー/
■32884 / inTopicNo.9)  Re[7]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ 出水 (115回)-(2009/02/17(Tue) 11:38:20)
?をつけて違うURLを生成するとうまくいくってことは
ブラウザのキャッシュじゃなくて、プロキシのキャッシュだと思うなぁ
引用返信 編集キー/
■32955 / inTopicNo.10)  Re[8]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ akkima (4回)-(2009/02/18(Wed) 10:19:54)
No32884 (出水 さん) に返信
> ?をつけて違うURLを生成するとうまくいくってことは
> ブラウザのキャッシュじゃなくて、プロキシのキャッシュだと思うなぁ

たしかに学校から外部のサーバの画像を表示しているので
学校のプロキシサーバのキャッシュが原因かもしれないです。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -