Why are my users loading randomly in IE?

I have downloads caused by redirects in an iframe.

  • user clicks the download button
  • our JS selects the download URL from the server (this is the timeout URL, so you need to do it this way).
  • the iframe is redirected to a download URL that has content to host attachments, so the browser starts the download without changing the location of the page.

this works well for all users and browsers ... except for some IE users.

I tried to reproduce the problem, and here is what I came up with:

  • if the Save or Open dialogs open quickly, the download always works
  • If the save or open dialogs click slowly (for example, 10-20 seconds), loading sometimes works, sometimes not. I could not find the template.

Here's what it looks like when it gets stuck:

enter image description here

The problem is not related to the communication timeout on S3 - my experiments above are within the time window.

What can cause these sporadic download attempts?

Update

Server logs assume that the download is completely sent to the user.

+8
windows internet-explorer
source share
4 answers

I did some tests by downloading the LLVM test suite , the 78 Megs file, using IE 9 on Windows 7. Downloading starts when you click the link button. Internet Explorer does not wait for confirmation or cancellation. IE saves bytes in the download directory in a file called fizzbuz.partial. IE will catch up with your choice by renaming the file when it executes or delete if you cancel.

This could be a synchronization problem or a problem with HTTP.

Synchronization task

Is it possible that another process will open the file, maybe even block it? Maybe excessive antivirus software or real-time backup? Most likely, the operation of closing and renaming (which should take place since the server sent the entire file) looks something like this:

  • Enter the last valid bytes into the fizzbuzz.partial file.
  • Close file
  • Rename file

What if the process captures a file for exclusive reading between 2 and 3? Maybe this application makes some changes to the file, for example, writing to an alternative NTFS stream, which confuse IE?

Keep in mind that browser plugins are also notified when the download is complete. Another kind of synchronization problem can be caused by a plug-in that monitors the download and, seeing that it is completed, performs some operation. This operation may fail or never return in some cases.

Try to reproduce the problem without starting the antivirus (a better test than the white list), and without downloading any browser plug-ins.

HTTP problem

The server and client must agree to end the connection. You should:

  • Close the connection at the end of the transmission.
  • Specify Download Length

It's hard to debug this from a distance, but if at all possible, grab the network boot track and find these tips:

  • The Content-length header is missing or may be disabled (will the browser always wait for N bytes that will not appear)?
  • Does each client have the same proxy configuration?
  • Are idle clients downgraded to HTTP 1.0? (There is a parameter called "always use http 1.0 through proxy"

In your screenshot, it looks like the browser was unable to calculate the estimated arrival time, but there is no correlation between this and the download.

+6
source share

I don’t know how IE handles it, but in other browsers, when you choose where you want to save the file, the download has already begun. What is the timeout of your download URL? Have you tried to set it higher? Does it work more than once? (if not, check your log for failed access attempts). Good luck.

PS: if nothing works, try this .

+4
source share

What version of IE? IE8 works erroneously if you don't decide what to do with the downloads before they complete ...

If the server registers that the data has been sent to the client / browser, than the following to examine the proxy and browser.

And your screen shot actually looks like a download dialog until a choice has been made. Is there a selection screen somewhere in the background?

0
source share

Try setting cache-control: max-age to a value greater than 0. I noticed that IE can get messed up just like in the case of content that expires immediately (i.e. via cache).

0
source share

All Articles