Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AJAX Page Download progress

I want to get the progress of my AJAX request - how much has been downloaded so far out of how much the file is. For example, I am downloading a large picture with AJAX so I can put the content in a DATA url (this may not be the best way to do that, it's just a example.)

So, I make the AJAX request to some host I have no control over (flickr), and report the progress back to the user. I cannot find a way to do this without a server-side script or something like that. Preferably the solution would use JQuery, because that is what I use for my website. Thanks! Isaac

like image 818
Isaac Waller Avatar asked Dec 30 '08 06:12

Isaac Waller


2 Answers

As far as I know, the $.ajax() function has no support for "bytes loaded". It only has start and complete events, no progress event.

I found this thread detailing an attempt, but apparently the code works in several browsers but not IE. The suggestion they make is to show progress in other browsers, and a simple "loading..." message for IE.

Do note that there are several similar discussions on the same site, so browse the left panel for other methods.

like image 180
Soviut Avatar answered Nov 07 '22 13:11

Soviut


Some browser provide support for download status events wher you can track your progress (i know ff 3.5+ does).

This is done by ajax XHR.

You can read more here and here

also, it is possible to split up a file in an array (let's say we divide it in 10 pieces),

now send 1peace, and return succes after, progress = 10% etc ...

like image 40
Nealv Avatar answered Nov 07 '22 15:11

Nealv