VB.netのWebBrowserコンポーネントで質問です。Windows7以降用にWebBrowserコンポーネントを通じてOpenStreetMap(OpenLayer2で描画)を開くアプリを開発しているのですが、先週ぐらいから?やたらとタイルの描画が遅いorいつまで待っても描画されない「こともある」症状が発生しています。何か対処方法をご存知の方よろしくお願い致します。
なお、同じ内容をIE11/Windows8.1で読み込ませた場合、ほぼ同じタイミングにもかかわらず描画されましたので、その時OpenStreetMapのタイルサーバが重かったわけではない気がします。
コメント(7件)
WebBrowser コントロールは既定だとIE7互換で動作していたかと思いますが、このあたりは設定変更されているのでしょうか?
もしIE11を互換モードで動作させて、表示が遅くなるということであれば、そのあたりが関係してそうな気がします。
■ WebBrowser コントロールで使われている Internet Explorerを最新のバージョンに変更する
https://www.ipentec.com/document/document.aspx?page=csharp-change-webbrower-control-internet-explorer-version
以前、自動的にIE11としてついて動作するようWebBrowserコントロールについてコードを組んでいたはずなのですが、しかしながらそこは随分前に記述したものなので、今でも正常に動作しているのか改めてまた調べてみます。
ただ、そうであれば『先週ぐらいから?やたらとタイルの描画が遅いorいつまで待っても描画されない「こともある」』の部分について、何故このタイミングで?というのがすっきりしないのですが。
ここ最近関連コードをメンテした記憶はないので。
Windows8.1の開発環境上でアプリケーションを起動させ、稼働しているVB.netのWebBrowserコンポーネントに https://www.cman.jp/network/support/go_access.cgi をアクセスさせました。
すると HTTP_USER_AGENT は
Mozilla/5.0 (Windows NT 6.2; Win64; x64; Trident/7.0; rv:11.0) like Gecko
とでました。
ですので、IE11で稼働しているのではないかと考えています。
ですが、Windows8.1の開発環境上では一時期発生したものの、最近は発生していません。
しかし、他の一部PCではこの症状が良く出ているものもあるので、そのPCにおけるHTTP_USER_AGENTも調べてみます。
ただ、「同じ内容をIE11/Windows8.1で読み込ませた場合、ほぼ同じタイミングにもかかわらず描画されました」については、その問題が良く発生するPCでも同じ内容を読み込ませた場合にもすでに検証済みで、すぐに描画されましたので、「そもそもそのPCではIEのバージョンが低いオチ」ではない予感がします。
よろしくお願い致します。
IE7互換ということは無さそうですね。。。
最近になって挙動が変わってきているということなので、もしかしたら、サーバ側の問題なのかもしれませんね。。。
サーバ側の稼働状況を見るページがありましたので、ご参考まで。
■ Pingdom Public Reports Overview
http://stats.pingdom.com/p310g2klasry
■ OSM API (August 2016)
http://stats.pingdom.com/p310g2klasry/435275/2016/08
昨日はサーバが不安定だったようですが、一昨日はそんなことなかったんですね。
一昨日も私のアプリケーション上では地図タイルのロード遅延が発生していたのですが。
その後、今日 http://monakaice88.hatenablog.com/entry/2015/10/20/020129 を参考に、OpenLayers.Layer.OSM を OpenLayers.Layer.XYZ に書き換えたところ、今まで地図が真っ白で表示されていたときでも、地図が描画されるようになりました。
たまたまなのか本当に効果があったのかどうか、もう少し様子を見ます。
ただ、HTAへ出力する機能をこのアプリケーションに設けていたのですが、HTA上では OpenLayers.Layer.XYZ に書き換えた行で何故かエラーが出ます。
そこで、HTAかどうかで OpenLayers.Layer.OSM にするかどうか処理を切り替えるようにしたのですが OpenLayers.Layer.OSM では、VB.netのWebBrowserコンポーネントではないのに地図をズームした時にタイルのロードにすごい遅延が発生していて、気になっています。
引き続きよろしくお願い致します。
> ただ、HTAへ出力する機能をこのアプリケーションに設けていたのですが、HTA上では OpenLayers.Layer.XYZ に書き換えた行で何故かエラーが出ます。
HTA って既定だと、ドキュメント互換モードが IE7 互換だったような。。。
https://vbscript.g.hatena.ne.jp/cx20/20130228/1362081495
meta http-equiv="X-UA-Compatible" content="IE=edge" にしてみたら、エラー解消しないでしょうか?
確かに meta http-equiv="X-UA-Compatible" content="IE=edge" を追加したら、私のWindows 8.1/IE 11環境ではエラーが出なくなりました。
ということは OpenLayers.Layer.XYZ はIE7だと動かないのかもしれませんね。
気を付けておきます。