Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, 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 19/09/2011, 14h34   #1
Invité régulier
 
Inscription : octobre 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 35
Points : 8
Points : 8
Par défaut Récupération de data durant appel $.ajax

Bonjour.

J'ai un léger soucis concernant la création d'une barre de progression pour l'avancement d'une tâche.

J'ai un script JS qui appelle un script PHP grâce à un $.ajax.
Ce script récupère des informations et les enregistre en base de données.
Avant toute insertion, je peux connaitre le nombre d'éléments à traiter. Je peux donc facilement, au cours de la boucle, connaitre l'avancement de mon traitement global.

Le problème est que je ne trouve pas de moyen de récupérer ces informations pour alimenter une JQuery ProgressBar.
Je cherche donc un moyen de récupérer des data au cours de l'appel $.ajax, toutes les secondes par exemple, ou à chaque modification de la valeur d'avancement.

Je suis pour l'instant bloqué par l'aspect client/serveur qui m’empêche de contourner le problème avec un fichier ou de la mémoire partagée.

La doc de jQuery ne semble pas donner d'info sur une fonction/méthode lisant la sortie standard régulièrement durant l’exécution du script PHP.

Merci d'avance pour votre aide.
Guillaume_Caldera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 14h50   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Il ne me semble pas que cela soit possible avec un seul ajax...
Selon moi coté serveur tu devra modifier une donnée que tu devras recupérer au moyen d'un second ajax dans un setInterval.
Pour moi ajax ne retourne qu'une réponse.
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 17h42   #3
Invité régulier
 
Inscription : octobre 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 35
Points : 8
Points : 8
Merci à toi SpaceFrog, tu m'as mis sur la bonne voie.

En effet, un appel Ajax = une réponse.

Donc j'ai fait comme suit :
- Je lance un timer toutes les secondes qui envoie une requete Ajax, qui elle lit un fichier et me renvoie son contenu (le %age).
- Je lance mon Ajax d'enregistrement, qui écrit, à chaque itération de ma boucle, le pourcentage d'avancement dans un fichier.
- Je nomme le fichier par le timestamp du moment de l'appel du script global. (Dans mon cas d'utilisation, possibilités de chevauchement de fichier quasi nulle).
- A la fin du script Ajax d'enregistrement, je débranche le timer de récupération de %age.

Le résultat est très concluant, merci de ton aide !
Guillaume_Caldera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 19h33   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Pour le nommage tu peux y inclure un sessionid ...
Sinon pour le principe de base c'est exactement ça
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h34   #5
Invité régulier
 
Inscription : octobre 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 35
Points : 8
Points : 8
En fait j'ai réussi a me débrouiller pour avoir un résultat très sympa. (Barre d'avancement très précise et rafraichie très souvent).

Par contre j'avoue que le processus d'échange des données dans un fichier me satisfait pas vraiment.
La session ne fonctionne pas, j'ai cherché du côté de la mémoire partagée, rien de génial, et faire une table en db juste pour ça, c'est pas vraiment foufou.

Si vous connaissez des moyens de stocker des data durant des appels Ajax, je suis preneur.

Merci du coup de main et A+ !
Guillaume_Caldera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h51   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
il me semble avoir déja vu un moyen de passer avec le seconde ajax un session id ce qui permettrait de recupérer le %age en session ...

de mémoire poru que la page appelée par ajax reconnaisse que la session est la même:
tu mets un session_start() sur la appelée par ajax
ensuite il faut d'abord passer l'id de la session coté client

Code :
var masession = "'.session_id().'";
puis il faut réinjecter cet id de session avant le send() ) :

Code :
setRequestHeader( 'Set-Cookie' , 'PHPSESSID=' + masession );
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web