Skip to content
This repository has been archived by the owner on May 25, 2023. It is now read-only.

IE8 doesn't fire load events (iframe transport) if the upload takes too long #3045

Open
tdaryani01 opened this issue Mar 22, 2014 · 8 comments

Comments

@tdaryani01
Copy link

Hi,

I setup jQuery File Uplaod while ago and have been testing it for a while. It works great on most browsers and devices. However, there seems to be an issue in IE8. In my test environment I can upload a 25 MB file without any issues. The file gets uploaded and then the UI is updated after receiving response back from server. In fiddler I can see the response back from server and then in IE debugging tool i can see that "completeCallback" in jquery.iframe-transport and "done" are called.

If I throttle the upload speed (to be around 250 kbits), the file still gets uploaded and the server replies with the result which can be confirmed using fiddler. But completeCallback doesn't get called in jquery.iframe-transport and hence the UI still continues showing the progress bar even though the upload is completed.

This issue only happens in IE ( I have only been testing using IE8). I also testing the Blueimp Demo and got the same result.

I have been trying to find out what causing this and have had no luck so far. Any ideas?

Thanks
Taher

@blueimp
Copy link
Owner

blueimp commented Mar 22, 2014

If the iframe transport completeCallback is never called, it means the load event of the iframe never fires, which would be a bug in IE8, as there's no error event for iframes.
Could you make sure this is not a result of using Fiddler (e.g. by uploading a GB file over a non-local network connection)?

@tdaryani01
Copy link
Author

Hi,

This is not caused by fiddler. I noticed this issue first on my virtual server which is over a non-local network while uploading a large file( 570 MB) . When uploading to that server I noticed that when the upload is taking long time, the UI isn't updated( in IE8) after the upload was complete.

It seems that what causing this has to do with how long it takes to upload a file. If I upload a 25 MB file with upload speed 1mbits then every thing is fine and completeCallback gets called and the UI gets updated after the upload is completed. However, if I set the upload speed to 250 kbits then completeCallback doesn't get called after the upload is completed.

@blueimp
Copy link
Owner

blueimp commented Mar 23, 2014

OK, I'll mark this as a browser bug then.

@blueimp blueimp changed the title jQuery file upload doesn't update UI after Upload completes if upload takes long time in IE8 IE8 doesn't fire load events (iframe transport) if the upload takes too long Mar 23, 2014
@tdaryani01
Copy link
Author

Thanks for the quick response!

Yes, this seems to only happen in IE( i have only tested IE8 on win7 and xp). I set forceIframeTransport to true and tested uploads on firefox and chrome and they are behaving as expected.

Would you have any suggestions for workaround? I have sequentialUploads set to true. Due to this issue, On IE8 it won't start another upload because the previous one stays in the processing state for ever which doesn't allow other uploads to start.

Thanks
Taher

@blueimp
Copy link
Owner

blueimp commented Mar 24, 2014

You could try adding a timeout and trigger a done event manually, but this would be a very dirty workaround.

@tdaryani01
Copy link
Author

Hi,

Adding style="display:none; to iframe tag in jquery.iframe-transport.js seems to fix this issue:

<iframe style="display:none;" src="' + initialIframeSrc +
                             '" name="iframe-transport-' + counter + '"></iframe>'

Thanks
Taher

@blueimp
Copy link
Owner

blueimp commented Mar 29, 2014

I haven't reproduced this yet, seems very weird.
The Iframes are part of a form tag which is already set to display:none.

@tdaryani01
Copy link
Author

Yes, It is weird. Another quirky IE issue :).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants