|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() antonin Inscription : février 2011 Messages : 2 ![]() |
Bonjour tout le monde,
je vous donne le contexte, puis ce que j'aimerais faire et les solutions auquel j'ai pensé, puis échanger le contexte : j'ai développé une appli 100% JS et JQuery (6000 lignes) avec gestion du clique droit, selectable, drag&drop, évènement à gogo.... bref une petite usine à gaz pour un intranet. Je charge un JSON et lorsqu'une modification, ajout ou suppression est faite je met à jour ce JSON, puis toutes les 30 sec, s'il y a eu une modif au json j'envoie en ajax mon nouveau JSON qui est ensuite traité derrière en php, tout fonctionne à merveille. l'idée : un utilisateur m'a demandé si la possibilité de faire un rollback sur l'appli de nos dernières modifs serait possible, comme j'aime les challenges et que je trouve son idée intéressante... les solutions : 1 ère solut - un peu "lourde" mais simple et rapide à mettre en place, à chaque mise à jour du json, je le clone et l'ajoute dans un tableau et à chaque rollback je recharge l'appli avec le json précédent. Inconvénient, côté client le navigateur va râler et le rechargement risque de ne pas toujours être optimisé. 2 ème solut - chirurgical, enregistré chaque action, sur quel élément ou groupe d'éléments, les propriété ajouté, les styles à la volée (la position ou la taille par exemple), donc long à mettre à place. type d'action : ajout, suppression, modification, déplacement, étirement (de colonnes,de lignes, d'éléments, de groupes d éléments, de contenu) sans parler de la personnalisation... bref c'est pas simple voir j'y pense en même temps de l'écrire, pour certains type d'élément, enregistré tout l'élément puis le remplacer lors du rollback. si quelqu'un m'a lu jusque là, déjà merci donc l'idée est posé après la question est "par quel bout le prendre" je suis seul sur ce projet et donc personne avec qui échanger sur le sujet Donc à votre bon coeur |
|
|
00
|
|
|
#2 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Bonjour,
Citation:
Citation:
Citation:
Peut être gérer cela comme le ferait une base de donnée avec des points de sauvegarde, mais j'y connaît rien... Peut être travailler avec du temporaire coté client et une sauvegarde qu'en fin... Peut être, mais je doit admettre que le 1st c'est de bien structurer avant de démarrer. Bon courage ! |
|||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() antonin Inscription : février 2011 Messages : 2 ![]() |
en fait pour être plus précis car j'ai mal détaillé la fonctionnalité, je parlais de mettre en place un historique de manipulation du DOM.
après avoir bien réfléchit le chirurgical me parait le plus censé. J'ai pensé à un proccess, reste à tester s'il est viable, ce que j'aimerais c'est trouvé une appli en JS qui le fait pour la décortiquer et voir si je pars dans la bonne direction exemple : je déplace un élément d'un point a à un point b donc lors du déplacement ajouter à un tableau la position avant le déplacement Code :
{'type':'style','style':{'top':120,'left':60},'id':'#el_1224'} Code :
{'type':'style','style':{'width':'200px','height':'16px'},'id':'#el_1224'} éffacer un élément -> donc l'action sera de le remettre Code :
{'type':'delete','element':'<div id="el_1224" class="tt xx">contenu</div>','parent':'#id_parent','append':'appendTo'} et ainsi de suite en fonction de toutes les actions possibles et y'en a un paquet + les combos et la mise à jour du JSON en temps réel. je vais essayer un truc simple et si cela est concluant, j'essaierais plus compliqué. Je vous tiens au courant. Merci à ceux qui ont répondu, ça m'a permit de mieux réfléchir à comment mieux l'expliquer et au final à m'écrire un bout de réponse |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 847 ![]() |
Certainement pas la première solution.
Soit la deuxième ou au mieux un mélange des deux où tu clones uniquement l'élément modifié. (arg, en relissant ton poste, je vois que t'y avais pensé <<" pour certains type d'élément, enregistré tout l'élément puis le remplacer lors du rollback.">> ^^) Sinon, peut-être regarder du coté de la fonction "watch" (et "unwatch"). Mais bon, je pense quand même que le plus simple est de sauver tout l'élément modifié. (ainsi qu'une reference vers son parent en cas de move ou de delete et une référence vers l'objet original pour garder la main dessus et le supprimer s'il est bougé ultérieurement et pouvoir le restaurer à sa bonne place sans le dupliquer.). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com