XMLHttpRequest 2
a une nouvelle chose. Il peut télécharger des fichiers. J'ai eu ce travail (c'est super facile). Maintenant, je me demande s'il existe un moyen d'obtenir la progression du téléchargement de ce fichier. Cela ne m'intéresse pas normalement, mais dans Google Chrome (8), j'ai vu que l'événement onreadystatechange est un XMLHttpRequestProgressEvent
. Progrès ... Il n'y a rien là-dedans de progrès de téléchargement (juste demande l'état), mais cela m'a fait me demander.Télécharger la progression (avec ou sans XMLHttpRequest 2) avec Javascript
Google Chrome a un «compteur» de progression lors du téléchargement natif de gros fichiers. C'est standard. Il est toujours là et non configurable. C'est dans la barre d'état. Est-ce que quelque chose comme ça est possible avec Javascript? Je voudrais le mettre dans un bel élément <progress>
ou quelque chose.
Je ne veux pas d'uploaders SWF ou Java (avec polling et> callbacks JS). Ça doit être natif. Si le navigateur peut le faire, Javascript devrait être capable de le faire, n'est-ce pas? =)
Dans le cas de non XMLHttpRequest 2
, je suppose que ce ne serait pas possible avec le téléchargement de fichiers très standard (pas d'ajax et juste un <input type=file>
).
Merci pour l'information
xhr.upload et XHR ont tous deux événements progress? Quelle est la différence? La seule fonction de XHR est de télécharger, non? – Rudie
xhr.onprogress ne se déclenche que sur la réponse du serveur de début/de fin. xhr.upload.onprogress se déclenche de temps en temps jusqu'à ce que le téléchargement soit terminé. Est-ce un comportement attendu et fonctionnel? – Rudie
Ce n'est pas très clair, et diffère en fonction du navigateur et de la version de XMLHttpRequest que vous utilisez. Fondamentalement, xhr.onprogress se déclenche pour les téléchargements et les téléchargements. xhr.upload.onprogress se déclenche uniquement pour les téléchargements. xhr.upload est implémenté uniquement dans XMLHttpRequest version 2. En ajoutant xhr.upload.onprogress s'il est disponible, ou bien xhr.onprogress, vous obtenez la progression du téléchargement quelle que soit la version que vous utilisez. Vous obtiendrez également des progrès sur la réponse si vous connectez xhr.onprogress (c'est-à-dire XMLHttpRequest v1). –