VB.netのWebBrowserコンポーネントで質問です。Windows7以降用にWebBrowserコンポーネントを通じてOpenStreetMap(OpenLayer2で描画)を開くアプリを開発しているのですが、先週ぐらいから?やたらとタイルの描画が遅いorいつまで待っても描画されない「こともある」症状が発生しています。何か対処方法をご存知の方よろしくお願い致します。

なお、同じ内容をIE11/Windows8.1で読み込ませた場合、ほぼ同じタイミングにもかかわらず描画されましたので、その時OpenStreetMapのタイルサーバが重かったわけではない気がします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2016/08/25 20:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:cx20
    1点気になったのでコメントします。
    WebBrowser コントロールは既定だとIE7互換で動作していたかと思いますが、このあたりは設定変更されているのでしょうか?
    もしIE11を互換モードで動作させて、表示が遅くなるということであれば、そのあたりが関係してそうな気がします。


    ■ WebBrowser コントロールで使われている Internet Explorerを最新のバージョンに変更する
    https://www.ipentec.com/document/document.aspx?page=csharp-change-webbrower-control-internet-explorer-version
  • id:halohalolin
    cx20さんご返答ありがとうございます。

    以前、自動的にIE11としてついて動作するようWebBrowserコントロールについてコードを組んでいたはずなのですが、しかしながらそこは随分前に記述したものなので、今でも正常に動作しているのか改めてまた調べてみます。

    ただ、そうであれば『先週ぐらいから?やたらとタイルの描画が遅いorいつまで待っても描画されない「こともある」』の部分について、何故このタイミングで?というのがすっきりしないのですが。
    ここ最近関連コードをメンテした記憶はないので。
  • id:halohalolin
    cx20さんへ

    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のバージョンが低いオチ」ではない予感がします。

    よろしくお願い致します。
  • id:cx20
    > Mozilla/5.0 (Windows NT 6.2; Win64; x64; Trident/7.0; rv:11.0) like Gecko

    IE7互換ということは無さそうですね。。。

    最近になって挙動が変わってきているということなので、もしかしたら、サーバ側の問題なのかもしれませんね。。。
    サーバ側の稼働状況を見るページがありましたので、ご参考まで。

    ■ Pingdom Public Reports Overview
    http://stats.pingdom.com/p310g2klasry

    ■ OSM API (August 2016)
    http://stats.pingdom.com/p310g2klasry/435275/2016/08
  • id:halohalolin
    cx20さんありがとうございます。
    昨日はサーバが不安定だったようですが、一昨日はそんなことなかったんですね。
    一昨日も私のアプリケーション上では地図タイルのロード遅延が発生していたのですが。

    その後、今日 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コンポーネントではないのに地図をズームした時にタイルのロードにすごい遅延が発生していて、気になっています。

    引き続きよろしくお願い致します。
  • id:cx20
    HTA に関してですが・・・

    > ただ、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" にしてみたら、エラー解消しないでしょうか?
  • id:halohalolin
    cx20さんありがとうございます。

    確かに meta http-equiv="X-UA-Compatible" content="IE=edge" を追加したら、私のWindows 8.1/IE 11環境ではエラーが出なくなりました。
    ということは OpenLayers.Layer.XYZ はIE7だと動かないのかもしれませんね。
    気を付けておきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません