Bonjour,

j'ai un formulaire d'import d'un fichier CSV, et je voudrais mettre en place une barre de progression pour indiquer l'avancement de l'import (pas l'upload du fichier lui même, mais l'avancement de traitement qui est fait ensuite (maj de la bdd))

J'ai donc une table dans ma Bdd qui stocke l'avancement de l'import, et je pensais faire une requête AJAX toutes les X secondes pour venir mettre à jour la barre de progression.

Malheureusement je me rends compte avec notre ami Firebug que les requêtes AJAX (avec un get de JQuery) reste sans réponse tant que le traitement n'est pas fini. L'upload du fichier n'est pas très long (je suis en local), et je vois bien ensuite la table qui se met à jour au fil du traitement du fichier.

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
16
17
18
19
20
21
22
23
24
25
26
27
$(document).ready(function() {
	$('.form-bo').submit(function() {
		$('#upload').hide();
		$('#update').show();
 
		setInterval("updateBar()", 2000); 
	});
});
 
var ini = false;
 
function updateBar() {
	$.get(
		"maj.html",
		{key : $('#key').attr('value')},
		function (data, status) {
			progress = parseInt(data);
 
			if (progress > 0) {
				if (!ini)
					init();
				// + MAJ updatebar
			}
		},
		'html'
	);
}
J'ai d'abord penser que mon Apache avait du mal à gérer l'import et d'autres requêtes en parallèle, mais j'accède très bien à d'autres pages en même temps que l'import via un autre navigateur (mais pas via Firefox...)

Est ce un comportement normal ? Ou est ce qu'il y a un point que je vois pas ? Y'a-t-il une autre possibilité de faire ce que je veux ?

Merci d'avance !