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 :

Mettre à jour un tableau d'object


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut Mettre à jour un tableau d'object
    Bonjour,

    Je suis en train de chercher la meilleur facon de faire pour mettre à jour un tableau d'object (cache) par rapport à un autre tableau d'objet contenant que les objets et proprietes mis à jour..
    Cette operation est faite plusieurs fois par seconde.

    Merci pour vos conseils

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    un opérateur magique
    ou alors explicite mieux ta problématique

    t0 A = objet , B= objet , A = B

    t1 => modif A , ( A != B )

    t2 => A=B , (A == B)


    Tu ne dis pas si les deux objets ont la même strucutre au départ
    Si ils ne l'ont pas il faudra boucler sur les propriété communes pour mettre a jour
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Le premier tableau me sert de cache. le champ Id est ma cle primaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    {"objets": [
            {
                "Id": 1,
                "champ2": "my valeur",
                "champ3": 2,
                "champ4": 3,
                "champ5": 4
            },
            {
                "Id": 2,
                "champ2": "my valeur2",
                "champ3": 22,
                "champ4": 32,
                "champ5": 42
     
            },
            {
                "Id": 3,
                "champ2": "my valeur3",
                "champ3": 23,
                "champ4": 33,
                "champ5": 43
     
            }
        ]
    }
    Plusieurs fois par seconde je recois les mis à jour que des champs modifiés avec toujours le champ Id pour savoir quel objet a ete modifié.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    {"objets": [
            {
                "Id": 1,
                "champ3": 2,
                "champ5": 4
            },
            {
                "Id": 3,
                "champ2": "my valeur3",
            }
        ]
    }

    Il faut que je mette à jour mon tableau de cache avec les nouvelles valeurs. Je cherche une autre methode plus efficace que de faire une iteration sur tous les objets et leurs champs respectifs.

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    je pense que tu peux chercher longtemps ...
    sauf a faire des objets par référence, mais cela implique la mise à jour immédiate, la modification de A implique la modification par référence de B
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre chevronné
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par défaut
    Deux options auxquelles je pense (pour la mise à jour globale) :
    1- utiliser une table de références croisées (grossiérement le principe, aucun controle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     // après avoir constitué le tableau des objets en cache (= cache)
    var xref = new Object();
    cache.forEach(function(object,rank){
      xref[object.id]=rank;
    }
    ...
    // à la mise à jour (tableau des objets à mettre à jour = maj)
    maj.forEach(function(changed_object,k,o){
      var cached_objet = cache[xref[changed_object.id]];
      // mettre à jour
    });
    Supporte la suppression, et l'insertion à condition à mettre à jour les références croisées

    2- Il est aussi possible de trier le tableau de cache sur les ids, et d'implémenter une recherche dichotomique pour la mise à jour

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Je cherche une autre methode plus efficace que de faire une iteration
    foreach ...
    si c'est pas de l'itération
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par défaut
    Euh pas d'itération sur les éléments à mettre à jour ? Là ça devient compliqué - je n'avais pas compris ça désolé

Discussions similaires

  1. [XL-2007] Mettre à jour un tableau Excel en fonction d'un autre
    Par m@tix dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/03/2012, 01h12
  2. Lancement d'un script pour mettre à jour un tableau HTML
    Par Goltar dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2011, 13h39
  3. Mettre à jour un tableau excel
    Par plonglet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/11/2009, 13h37
  4. Mettre à jour une base via un tableau HTM
    Par basketime dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/03/2007, 15h18
  5. Mettre à jour des valeurs dans un tableau
    Par espadon1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/10/2006, 13h31

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