J'ai des traitements à faire, et j'ai besoin d'afficher les retours de ces traitements en temps réel dans une page web (de préférence dans différents div ; au pire je peux faire ça dans des iframes, mais je ne pense pas que ça apporte une solution à ma problématique). Je suis en PHP, je peux utiliser du js autant que je veux tant que c'est compatible avec les navigateurs courants.
Juste pour situer un peu le contexte, la fonction de l'outil est de créer des comptes LDAP en récupérant des informations (mais mon problème est vraiment lié aux technologies Web, pas à LDAP).
La séquence se déroule de la façon suivante :
Phase 1 :
[ul] [li]Je fais une extraction de bases de données (différents formats, ça peut être des requêtes sur socket ou fichier) qui me permet de générer une liste d'individus.
[li]Pour chaque élément de cette liste, je peux être amené à réaliser d'autres requêtes (compléments d'informations...).
[/ul]
Phase 2 :
[ul] [li]Je récupère l'ensemble des comptes de l'annuaire correspondant à la population que je suis en train de synchroniser
[/ul]
Phase 3 (pour chaque élément de la liste, en une seule passe) :
[ul] [li]J'effectue une série de requête dans d'autres référentiels, afin de lier les comptes créés à d'autres comptes déjà existants.
[li]J'effectue une série de tests pour m'assurer de la validité du compte (toutes les informations présentes, identifiant unique, cohérence des données...).
[li]S'il n'y a eu aucun problème, je regarde si un compte existe déjà
[ul] [li]S'il existe déjà, j'effectue une comparaison avec mise à jour si besoin
[li]Sinon, j'effectue une création
[/ul][/ul]
Phase 4 :
[ul] [li]Si un compte est présent dans l'annuaire mais plus dans la base de données, je le marque comme étant à supprimer
[li]Si la marque de suppression est supérieure à 3 mois, je supprime effectivement le compte
[/ul]
Phase 5 :
[ul] [li]J'envoie un e-mail à un alias donné avec un résumé des problèmes et des comptes créés/modifiés/supprimés.
[/ul]

Au moment du résultat d'une opération, je dois avoir à l'écran le résultat de cette opération dans un div de log (noté A sur mon écran).
Au moment de la fin de la phase 3 ou 4 (suivant les cas), je dois avoir à l'écran le résultat de cette opération dans un div (noté B sur mon écran) ; un clic sur chaque élément ajouté dans B doit me permettre de renseigner le div C avec divers renseignements, complémentaires à ceux affichés (données utilisées pour la création/modification, code résultat de l'opération LDAP, durée de l'opération).
Je n'arrive pas à réaliser ces opérations d'affichage proprement. A l'heure actuelle, j'ai un affichage dans A et C assez sommaire et déjà chiant à gérer (enfin, je trouve ; si on me dit que c'est la seule solution, je m'en contente) ; dans B, ça me convient plutôt bien.
Ma page se construit pendant l'opération (il n'y a donc pas d'Ajax, tout est en direct avec un flush();).
Pendant la phase 3 (ou 4), j'effectue l'opération. Après l'opération, j'ajoute dans le div B un span cliquable, qui a dans son onclick toutes les infos que je veux pouvoir afficher dans mon div C (je ne sais pas si c'est très propre vu que je peux avoir une centaine de lignes à transmettre).
Dans ce span cliquable, j'ai mis une icone ; sur le onload de cette image, je lance une interruption qui met à jour les informations du div A (c'est franchement nul comme procédé... si l'image n'est pas présente, l'opération n'est pas réalisée... et le onabort ne résout pas ce problème... et c'est conceptuellement vraiment moche... et en plus, ça me contraint à afficher une image dès que je veux mettre à jour le div A, alors que je veux pouvoir le faire sur n'importe quelle opération... et ça me fait des onXXXX avec des paramètres particulièrement verbeux).
Je connais mal les interruptions possibles en javascript (ni les façons de les optimiser). Je suis prêt à utiliser de l'Ajax à foison, mais je ne suis pas certain que ça puisse résoudre mes problèmes... mais je cherche vraiment une solution pour tout ça (si ça se trouve, c'est tout simple et c'est juste que je regarde mon problème d'un mauvais point de vue).
Si vous avez eu le courage de tout lire, félicitations

(Ah et j'ai aussi un problème de CSS... avec Firefox, quand je mets overflow=hidden, il ne me cache pas juste le texte qui dépasse, mais tout le texte
