Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 19h10   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 16
Points : 1
Points : 1
Par défaut Téléchargement de plusieurs fichiers parallèlement avec AJAX

Bonjour,
j'aurais besoin d'un peu d'aide pour trouver une solution à mon problème:
Sur ma page, j'ai une liste de liens menant à des fichiers. Sauf que j'utilise AJAX pour faire générer du côté serveur ces fichiers là au moment où l'on clique sur un de ces liens. A la fin du traitement (qui prend au moins une vingtaine de secondes), l'URL m'est renvoyée et j'utilise ca:
Code :
document.location.href=xhr.responseText;
pour pouvoir lancer le téléchargement du fichier. Jusque là ca marche très bien.

Mon soucis maintenant est de permettre à l'utilisateur de cliquer sur plusieurs liens différents sans attendre la fin du chargement du 1er fichier (c.a.d avant que le Téléchargement du 1er fichier ne commence) et qu'au final tous les fichiers se téléchargent correctement. Normalement AJAX gère bien le fait d'empiler les requêtes comme ca mais cette ligne de code que j'ai mise précédemment fait planter les téléchargements suivants car ils ne renvoient alors aucune réponse...

Si je la remplace par un simple
Code :
alert(xhr.responseText);
alors là ca marche normalement et on verra s'afficher les différents liens vers les fichiers à télécharger (mais ca ne télécharge pas, bien évidemment ^^). Donc voilà, est ce que vous voyez un moyen pour remplacer ma ligne de code?

Voici une version épurée du code qui ne contient que l'essentiel concernant le problème:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
function getFile(file){
	var xhr = new XMLHttpRequest();
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
			document.location.href = xhr.responseText; // Ligne qui pose problème à priori
	}
	xhr.open("GET",file,true);
	xhr.setRequestHeader("Cache-Control","no-cache");
	xhr.send(null);
}
Merci de votre aide
Ivan_34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 09h43   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Utilise window.open() au lieu de location.href
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 10h36   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 16
Points : 1
Points : 1
Merci beaucoup c'est exactement ca
Ivan_34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h17.


 
 
 
 
Partenaires

Hébergement Web