30

^^
Ajouter ton contenu wrappé dans des divs via le appendChild ne suffit pas ?

31

Bah je peux toujours wrapper du contenu avec innerhtml, mais j'ai peur d'avoir des conséquences équivalentes vu que le problème vient quand même de cette fonction, ça ne faut que décaler le problème d'un cran. Du coup je finis les tests sur certaines parties fonctionnelles du code et je fais ça après.
A priori, jQuery (et d'autres) permet de faire un append brut en analysant tout le contenu envoyé et en le retraitant comme des entités DOM.
avatar

32

Bon, j'ai basculé le plus gros de innerHTML ver la méthode appendChild, et le résultat est impressionnant O_o. Plus aucune surcharge processeur, plus aucune surcharge mémoire, c'est hyper fluide là où ça m'écroulait mon poste de travail (Xeon 4 coeur, quand même). C'est un peu plus verbeux au niveau du code, mais c'est pas mal, ça permet de clarifier les choses (ah, et l'autre côté un peu dommage est qu'on ne peut pas consulter directement le code résultant dans le navigateur, il faut sélectionner et afficher la sélection, mais les navigateurs modernes le permettent (mais c'est pas spécialement human readable, niveau retours à la ligne)).

Donc TRES grand merci à Penpen pour le truc oui
avatar

33

Content que ton problème soit résolu happy

34

Plop, je remonte le sujet parce que je suis en train de repenser totalement mon système, mais je me retrouve dans des considérations qui sont au-delà de mes connaissances actuelles.
tromb Fichier joint : Q0IV (Schema.png)
Bon, toute la partie cron et verrou, pas de souci, c'est assez trivial.
Pour la partie mise en forme, je ne sais pas encore si je vais faire du XSL/XSLT un peu plus le bourrin (peut-être le bourrin dans un premier temps, puis proprement par la suite).
Mon problème est plutôt pour l'aspect récupération des données... je veux pouvoir lire en continu le flux XML généré à la volée, et l'interpréter à la volée.
Le problème, c'est que du coup le fichier ne sera pas terminé, donc non valide. Est-ce que vous connaissez de méthodes pour faire ça proprement ?
Sinon, il y a toujours un plan B qui est de partir sur du sqlite, mais je préfèrerais des données human-readable en cas de souci...
avatar

35

Nil (./34) :
(peut-être le bourrin dans un premier temps, puis proprement par la suite)
j'avais lu "probablement par la suite" grin

36

Du XML peut être lu comme un flux, non ? Mais bon, je ne trouve pas ça très propre. Et pourquoi pas plusieurs XML ?
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

37

flanker (./36) :
Du XML peut être lu comme un flux, non ? Mais bon, je ne trouve pas ça très propre. Et pourquoi pas plusieurs XML ?
J'y ai pensé, mais ça me paraît difficilement faisable... quoique... faire un dossier dans lequel j'aurais tout plein de fichiers XML contenant la plus petite unité indissociable au niveau de son analyse puis la compiler en un XML unique d'archivage à la fin de l'opération est toujours possible, en effet...
avatar

38

Ça me paraît pas mal aussi.

39

Ce n'est pas possible de simplement fermer la balise avant de donner le fichier à analyser ? Tu as ton processus qui génère le fichier XML, tu t'arranges pour qu'il le remplisse par blocs de données indissociables et avec toutes les balises fermées (sauf la première). Au moment où tu veux analyser le fichier, tu en fais une copie (en mémoire ou ailleurs suivant sa taille), tu ajoutes la balise fermante qu'il manque et tu le donnes à ton analyseur.
avatar

40

RHJPP (./39) :
Ce n'est pas possible de simplement fermer la balise avant de donner le fichier à analyser ? Tu as ton processus qui génère le fichier XML, tu t'arranges pour qu'il le remplisse par blocs de données indissociables et avec toutes les balises fermées (sauf la première). Au moment où tu veux analyser le fichier, tu en fais une copie (en mémoire ou ailleurs suivant sa taille), tu ajoutes la balise fermante qu'il manque et tu le donnes à ton analyseur.
Ca serait possible, mais un peu compliqué, parce que dans le détail, ça doit faire ça :
- charger le XML jusqu'au point actuel
- l'interpréter pour la mise en forme
- continuer à charger les éléments nouveaux pour avoir un affichage temps réel de ce qui s'y ajoute
avatar

41

Sinon, tu mets un serveur Jabber, et ton processus envoie des requêtes XMPP au serveur au fur et à mesure de son avancement. Comme ça, pas de problème pour avoir l'avancement en temps réel trilove
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

42

Ou un serveur irc, tant que t'y es, soyons vintage triso
avatar

43

un compte twitter tant qu'à faire...
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

44

Nil (./34) :
[...]Le problème, c'est que du coup le fichier ne sera pas terminé, donc non valide. Est-ce que vous connaissez de méthodes pour faire ça proprement ?
Sinon, il y a toujours un plan B qui est de partir sur du sqlite, mais je préfèrerais des données human-readable en cas de souci...


AJAX, WebSocket, sur un serveur Node.JS (C'est crade) mais ça devrait résoudre ton soucis. Regarde du côté de Socket.io wink Si tu veux pas installer Node.JS (surtout pour ça), tu peux tenter un script WebSocket en PHP, aucune idée de ce que ça donnera mais j'y crois pas trop.

Si tu pars sur ça, c'est ton .JS qui doit générer le fichier et l'envoyer au fur et à mesure. Je peux t'expliquer comment si tu trouves pas mieux wink

45

Je suis parti sur la solution de plusieurs XML ; je verrai si c'est viable au fur et à mesure de l'implémentation. De toutes façons, ça n'est pas du travail perdu, ça m'oblige à structurer efficacement et logiquement le script en question (qui est assez imposant et qui a connu pas mal de modifications et d'évolutions sans remise à plat).
avatar

46

Bon, je remonte le sujet parce que je suis en train de faire l'implémentation (putain , 5 ans plus tard, youhou \o/) du système. Finalement, je suis parti sur du SQLite avec une table de structure très simple mais qui me permet de représenter un B-tree (avec une colonne "parent"). Je perds le "human readable", mais en pratique l'XML devenait très vite illisible à cause des CDATA et de la profusion des informations.
J'espère que je n'aurai pas de souci en cas d'accès concurrents (il y a un haut niveau de verbosité des logs, du coup si deux traitements sont réalisés en parallèle, j'espère que les locks ne vont pas finir par faire timeouter la chose... sinon il faudra que je mette en place un .lock pour interdire les traitements parallèles, mais j'aimerais éviter).

Désolé du remontage, j'avais envie d'en parler embarrassed
avatar

47

Nil (./46) :
(putain , 5 ans plus tard, youhou \o/)
L'administration française est en Valve-time, non ?
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

48

Non, mon modèle, c'est eux !
avatar

49

Méfie-toi, contre toute attente le truc a quand même fini par se faire ^^
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

50

Ahah grin C'est aussi ce qui va arriver ici, j'en ai la certitude embarrassed
avatar