2012-05-16 9 views
8

iframeのリダイレクトによってトリガーされるダウンロードがあります。ユーザーのダウンロードがIEでランダムに停止するのはなぜですか?

  1. ユーザーがIFRAMEがにリダイレクトされ
  2. たちのJSは、サーバからのダウンロードURLがフェッチ
  3. は(それがこの方法を実行する必要があるので、それがタイミングアウトURLです)「ダウンロード」ボタンをクリックします添付ファイルの内容を処理するurlをダウンロードして、ブラウザがページの場所を変更することなくダウンロードを開始するようにします。

これは、一部のIEユーザー以外のすべてのユーザーとブラウザでうまく機能します。

私は問題を再現しようとしましたが、ここで私が作ってみた何ました:「保存または開く」ダイアログボックスがすばやくてクリックされた場合ならば、ダウンロードは常に

  • を作品

    • 「保存または開く」ダイアログボックスはゆっくりと(10-20秒のように)クリックされてダウンロードが動作することがあり、時にはそうではありません。私はパターンを見つけることができませんでした。

    は、ここではそれが立ち往生するときのようになります。

    enter image description here

    問題は、S3上のリンクのタイムアウトからではありません - 私の実験は上記の時間ウィンドウ内にあります。

    これらの散発的なダウンロードに失敗した原因は何ですか?

    更新

    Serverのログは、ダウンロードが完全にユーザーに送信されていることを示唆しています。

  • +0

    通常、ダウンロードダイアログどのくらいのデータがダウンロードされたかを示していますが、これはハングするたびに同じですか?(これは@ ixe013の回答に関連しています) – Robert

    +0

    @Robert nope、それは完全ではありません失敗間のnt。それは各失敗の進行の量が異なります。 –

    +0

    他のブラウザでも動作する場合、IEのトラフィックにWiresharkとの違いがありますか? – NoBugs

    答えて

    4

    IEの処理方法はわかりませんが、ダウンロードが既に開始されているファイルを保存する場所を選択している間は、他のブラウザではわかります。ダウンロードURLのタイムアウトは何ですか?あなたはそれをより高く設定しようとしましたか?それは何度も働いていますか? (そうでない場合は、失敗したアクセス試行のログを確認してください)。 幸運。

    PS:何も動作しない場合、try this

    +0

    私はそれも何か関係があるかもしれないと思っていましたが、1)それが前もって始まっていればそれはまだ2回しかアクセスしていません。2)何とか賢い/時間制限(1分)内に複数のアクセスがあっても、URLは引き続き動作します。 –

    +0

    IEはまた、あなたが何をするかを選択している間にダウンロードを開始します。 –

    +0

    これは正しいです。あなたは、ダウンロードが完了したことを知らせるトリガを、それが何であっても間違いなく欠落しています。 –

    0

    どのバージョンのIEですか? ダウンロードが完了する前に何をするか決定しないと、IE8が正しく動作しないことがあります...

    サーバがログをクライアント/ブラウザに送信した場合、次に調査するのはプロキシとブラウザです。

    あなたのスクリーンショットは、選択がまだ行われていない間はダウンロードダイアログのように見えます。バックグラウンドのどこかに選択画面がありますか?

    +0

    選択した後にスクリーンショットを撮り、選択ウィンドウが消えました。あなたは「時々誤動作」を詳しく説明できますか? –

    +0

    保存/開くダイアログが長時間[私の場合は数時間]実行されなかった場合、ダウンロードしたファイルのIE8「忘れた/紛失したトラック」が発生しました。それは関連性がないかもしれないが、依然として事実である。 –

    6

    Windows 7のIE 9を使用して78メガファイルのLLVM test suiteをダウンロードしました。リンクをクリックするとダウンロードが開始されます。 Internet Explorerは、確認またはキャンセルを待つことはありません。 IEはバイトをダウンロードディレクトリにfizzbuzという名前のファイルに保存します。 部分。 IEはファイルの名前を変更したときに名前を変更するか、キャンセルした場合は削除するかのいずれかによって選択内容に追いつきます。

    タイミングの問題またはHTTPの問題が考えられます。

    タイミングの問題

    は、それが別のプロセスが多分それをロックし、ファイルを開くことは可能ですか?おそらく過度のアンチウイルスまたはリアルタイムバックアップソフトウェアですか? (サーバーがファイル全体を送信した後に行わなければならない)クローズとリネームの操作は、次のようなものになります:

    1. 最後の有効なバイトをfizzbuzzに書き込みます。 部分ファイル
    2. は、プロセスが2および3の間で排他的な読み取りのためにファイルをグラブ場合はどのファイルの名前を変更し

  • ファイルを閉じますか?たぶん、そのアプリケーションは、IEに混乱している代替NTFSストリームへの書き込みのようなファイルにいくつかの変更を加えますか?

    ブラウザプラグインにもダウンロードの終了が通知されることに注意してください。タイミング問題の別の種類は、monitors the downloadというプラグインによって引き起こされ、それが終了するのを見て、何らかの操作をします。その操作は失敗することも、何度も戻ってこないこともあります。

    ウイルス対策プログラムを実行せずに(ファイルをホワイトリストに追加するよりも優れたテストです)、ブラウザープラグインをロードしないで問題を再現してください。

    HTTPの問題サーバーとクライアントが接続を終了するための方法に同意しなければならない

    。あなたはどちらかでなければなりません:

    1. は転送
    2. の末尾に接続を閉じることは、遠くからこれをデバッグするのは難しいです、ダウンロード

    の長さを指定しますが、すべてで可能ならばダウンロードのネットワークトレースをキャプチャし、これらの手がかりを探します。

    1. Content-Lengthヘッダが存在しないか、または多分オフ・バイ・N(来ないブラウザがNバイトのために永遠に待ちます(複数可)) ?
    2. 各クライアントのプロキシ設定は同じですか?
    3. 動作していないクライアントはHTTP 1.0にダウングレードされていますか? (「常にプロキシを使用してHTTP 1.0を使用する」という設定があります。

    スクリーンショットから、ブラウザは予想された到着時刻を計算できませんでしたが、ダウンロードとの間に相関はありません。

  • +0

    私は遅れが原因でIEが受信ウィンドウをいっぱいにしてから、さらに入力が来るのを待っていると考えています。 – jthill

    +0

    可能ですが、ネットワークトレースは、ユーザーの待機に関するダウンロードプロセスに違いはありません。サーバーはすべてを送信するので、受信ウィンドウが常にフルであることを確認し、毎時数ミリ秒のレイテンシを与えます。 – ixe013

    0

    私はIEが(ノーキャッシュを使用しないことで、すなわち)すぐに有効期限が切れるように設定の内容に次のように台無しにすることができますことに気付きました0より大きい値にcache-control: max-ageを設定してみてください。

    +0

    興味深い。あなたはこのような "ねじ込み"を詳しく説明できますか? –

    +0

    ping - これ以上の情報はありませんか? –

    +0

    私は数年前にIE6で遭遇した問題のみを扱っていますが、新しいIEバージョンには関係がありません。問題は単純に、httpヘッダー経由でno-cacheに設定されたダウンロードが実際にディスクに保存されない可能性があることです。おそらくIEはダウンロードが完了する前に削除しますが、これを認識できず、もはや存在しなくなったファイルでデフォルトのオープン/セーブアクションを試みます。私はそれが進歩を妨げているかどうかを知ることができます(あなたがまだ書いているファイルを削除したり、削除されたファイルのハンドルを使用することは悪いニュースです)。 – SpliFF

    関連する問題