Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 02/02/2011, 14h40   #1
Invité de passage
 
antonin
Inscription : février 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : antonin
Âge : 34

Informations forums :
Inscription : février 2011
Messages : 2
Points : 0
Points : 0
Par défaut création d'un rollback au sein d'un application

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 , et là avant de me lancer, j'aimerais bien avoir une vision plus global de la fonctionnalité théorique.

Donc à votre bon coeur
antonin.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 20h28   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Bonjour,
Citation:
si quelqu'un m'a lu jusque là, déjà merci
de rien.

Citation:
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...
le jeu en vaut-il la chandelle? même si tu considères que c'est un beau challenge

Citation:
...j'aimerais bien avoir une vision plus global de la fonctionnalité théorique.
il te faut passer par une spécification des besoins des plus détaillée.

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 !
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 23h34   #3
Invité de passage
 
antonin
Inscription : février 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : antonin
Âge : 34

Informations forums :
Inscription : février 2011
Messages : 2
Points : 0
Points : 0
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'}
ou étirer un élément -> donc remplacer ses styles par ceux précédemment en place
Code :
{'type':'style','style':{'width':'200px','height':'16px'},'id':'#el_1224'}
ajouter un élément -> donc l'action sera un remove
Code :
{'type':'add','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'}
là ça se corse car il faut en plus lui rajouter les event adéquat mouseover, onclick, onContextMenu... quoique avec la method live()

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
antonin.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 13h13   #4
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 847
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 847
Points : 1 344
Points : 1 344
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.).
Willpower 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 05h33.


 
 
 
 
Partenaires

Hébergement Web