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:pour pouvoir lancer le téléchargement du fichier. Jusque là ca marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.location.href=xhr.responseText;
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 simplealors 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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part alert(xhr.responseText);
Voici une version épurée du code qui ne contient que l'essentiel concernant le problème:
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Partager