6

Web サイトに接続してそこから XML をダウンロードするプログラムを作成しています。次に、情報をユーザーに表示します。

私が抱えている問題は、最初にプログラムを開いて XML 情報のダウンロードを開始するときに、非常に長い時間がかかることです。プログラムを開いたままサイトから別のページを読み込むと、ダウンロードに約 0.5 秒かかります。これを回避する方法はないか考えてみました。

現在、HttpWebRequest を使用してストリームをダウンロードし、StreamReader を使用して読み取ります。次に、XLINQ を使用して XML を解析します。

4

3 に答える 3

14

プロキシを明示的に設定してみてください。プロキシが定義されていない場合、HttpRequestクラスはプロキシの検索に時間を費やします。見つかった場合 (または見つからなかった場合) は、その情報をアプリケーションの存続期間中使用し、後続の要求を高速化します。

//internally sets "ProxySet" to true, so won't search for a proxy
request.Proxy = null;

.config でこれを定義することもできます。

<system.net>
  <defaultProxy
    enabled="false"
    useDefaultCredentials="false" >
    <proxy/>
    <bypasslist/>
    <module/>
  </defaultProxy>
</system.net>
于 2009-09-12T01:33:32.870 に答える
0

最初のパスでリクエストのどの部分に時間がかかっているかを把握するには、おそらくさらに調査を行う必要があります。私の最初の直感は、指定したドメイン名の IP アドレスを取得するための DNS 要求が、最初の実行時にキャッシュされていないため、時間がかかっていることを示しています。また、最初にクエリを実行するときにいくつかの起動スクリプトを実行する必要があるのは、反対側の Web サーバーである可能性もあります。最初のリクエストには時間がかかるとおっしゃいましたが、どのくらいかかるかはわかりません。これは、最初の要求を実行するのに非常に長い時間がかかるという大きな問題を引き起こしていますか?それとも単に煩わしいだけですか?

于 2009-09-12T01:18:18.910 に答える