IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Enregistrer et recharger un objet


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 74
    Points : 80
    Points
    80
    Par défaut Enregistrer et recharger un objet
    Bonjour,

    Je développe un chat avec Node.js.

    Avec le temps, je me retrouve avec une gros objet javascript comportant la totalité des réglages effectués par les utilisateurs, ainsi que les derniers messages de chaque canaux, les canaux privés créés, les canaux publiques, la liste des personnes autorisées à rejoindre les différents canaux privés... Bref, le truc qu'il ne faut pas perdre lorsque le serveur a besoin d'être redémarré si on veut pouvoir retrouver tout ses réglages ensuite.

    Je m’apprête à faire une fonction enregistrer() qui serait appelée toutes les 15 minutes, ainsi qu'une fonction d'initialisation pour reconstruire les canaux après redémarrage.

    Je ne sais ni encore comment faire cette fonction enregistrer() et cette fonction initialiser() ni dans quel format. C'est sur ce point que j'aimerais être conseillé. Si ça se trouve il existe des solutions magiques que je ne connais pas pour enregistrer des objets et les recharger ensuite.

    Sinon, je pensais faire une fonction assez générique qui permettrait de sérializer l'objet dans le format json ainsi qu'une fonction inverse. Mais je ne sais pas comment prendre connaissance des attributs des différents objets que renferme mon objet, ainsi que les fonctions pour reconstruire ces attributs avec les noms qui vont bien.

    J'attends, de ce messages, des conseils, des astuces...

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    je te conseille de jeter un oeil sur Jquery
    Après il faudra déterminer si tu souhaites conserver les données coté client ou serveur pour savoir si tu dois utiliser les possibilité de stockage coté client (cookies ou local storage)
    ou coté serveur (conversation ajax et base de données).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 74
    Points : 80
    Points
    80
    Par défaut
    L'objet à enregistrer se trouve côté serveur et doit être enregistré côté serveur. Il s'agit d'un gros objet JavaScript. Le serveur est développé en JavaScript et exécuté par Node.js

  4. #4
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 720
    Points : 1 607
    Points
    1 607
    Par défaut
    je sais pas si sa peut t'aidé mais ecmascript 6 propose la methode map pour manipuler les objets mais je ne suis pas certain que v8 le supporte donc a verifier.

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    HI

    je ne vois pas où est le problème si tout est côté serveur

    de plus plutôt que d'enregistrer toute les X minutes ce qui implique que tu as un gros truc à enregistrer et que si tu plante entre deux enregistrement tu perds des données

    il serait plus simple efficace et sur d'enregistrer les changement au fur et à mesure.
    ainsi tu n'enregistre que de petits objet (les changement) et uniquement lorsque c'est nécessaire. du coup si tu as une interruption seule l'opération en cours risque de ne pas être enregistrer.

    à cela s'ajoute que node JS est construit autour de la programmation événementielle ce qui facilite encore plus le travail si tu le fait au fur et à mesure.
    A+JYT

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/03/2013, 20h38
  2. Réponses: 2
    Dernier message: 13/09/2012, 11h53
  3. Réponses: 3
    Dernier message: 27/05/2009, 09h10
  4. Recharger un objet flash
    Par bombseb dans le forum Flash
    Réponses: 4
    Dernier message: 16/10/2007, 22h01
  5. Enregistrer un tableau d'objet
    Par MicroPuce dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/11/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo