Bonjour tout le monde,
Je voudrais faire une application javascript permettant de télécharger un fichier sur mon serveur en AJAX.
Comme sur le site : https://mega.co.nz/
Pour cela, j'ai une application serveur qui me découpe mon fichier en plusieurs parties.
Ces parties sont récupéré grâce a des requêtes AJAX.
La ou je bloque, c'est pour récupérer le résultats des requêtes AJAX qui sont asynchrones.
Voici le code que j'ai commencé a faire :
Mais mon tableau buffer ne se remplis pas. :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //Buffer qui va contenir les données téléchargés var buffer = new Array(nbParts); //nbParts est le nombre de parties du fichier qui doivent être téléchargées for(var i=0; i < nbParts; ++i) { var ajax = getXMLHttpRequest(); //Reception du résultat des requêtes AJAX. ajax.onreadystatechange = function() { if (ajax.readyState == 4 && (ajax.status == 200 || ajax.status == 0)) { buffer[i] = atob(ajax.responseText); } } ajax.open("GET", url + "?type=download&file=" + alias + "&index=" + offset + "&size=" + parseInt(sizeParts-1), true); ajax.send(null); offset += sizeParts; }
J'ai essayé de regarder les sources javascript du site mega, mais je n'arrive pas a comprendre comment ils font pour récupérer le résultats de ces requêtes asynchrones. (class ClassChunk du site mega)
J'ai aussi pensé a faire de la récursivité dans les fonctions callback des requêtes asynchrone, mais l’Intérêt du mode asynchrone est perdus...
Merci d'avance pour votre aide,
Partager