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

AJAX Discussion :

Multplicité d'un même identifiant


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut Multplicité d'un même identifiant
    Supposons que dans une page Web, je lance une requête ajax du type "Cherche(document.getElementById('reponse'))",

    Si dans cette page j'ai un contenu du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l'&eacute;l&eacute;ment trouv&eacute; 1 est<span id="reponse"></span>.</br>
    et que plus loin l'on ait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la chose mesur&eacute;e  est<span id="reponse"></span>.</br>
    Seul le premier "reponse" sera mis à jour.

    Si je dispose de deux pages web disposant chacune de la même requête et du même identifiant 'reponse'...
    Ne risque-t-on pas d'avoir un conflit lorsque je l'appelle sur la page n°1 puis sur la page n°2 en supposant que la requête soit lancée
    avec onfocus= Cherche(document.getElementById('reponse'))" sur chaque page, que les deux pages soient ouvertes simultanément,
    que l'on passe le focus de l'une à l'autre et que la valeur de 'reponse' change constamment.

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    En fonction du navigateur et de la spécification que celui-ci implémente, tu n'aura pas le même comportement.

    Source :
    https://developer.mozilla.org/en-US/...getElementById
    DOM 1 : Behavior is not defined if more than one element has this id.
    DOM 2 : Behavior is not defined if more than one element has this ID.
    DOM 3 : If more than one element has an ID attribute with that value, what is returned is undefined.

    Donc, parié sur le comportement à ce niveau là n'est pas la bonne solution.

    Cependant, si tu as deux pages web différent. C'est à dire, deux onglets ou deux fenêtres différentes. Alors, tu as deux contextes séparés.

    Dans ce cas, l'objet document ne fait référence qu'à une seule de ces pages (celle dans laquelle elle est exécuté !).

    Si tu n'es pas dans ce cas. Alors, tu n'as qu'une seule page web. Et donc, tu ne devrais pas avoir deux objet avec le même identifiant. Il est totalement possible de générer un identifiant aléatoire, pour éviter le problème.

    Si tu cherche à mettre à jour un set d'élément, il me semble plus propre d'utiliser une classe "reponse".

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    Merci pour ces confirmations rapides.

    Citation Envoyé par kolodz Voir le message
    En fonction du navigateur et de la spécification que celui-ci implémente, tu n'aura pas le même comportement.
    Donc, parié sur le comportement à ce niveau là n'est pas la bonne solution.
    ça je l'avais constaté en essayant plusieurs navigateurs mais merci pour les sources.
    Je prends évidemment soin dans chaque page d'avoir des requêtes avec des identifiant tous différents.

    Citation Envoyé par kolodz Voir le message
    Cependant, si tu as deux pages web différent. C'est à dire, deux onglets ou deux fenêtres différentes. Alors, tu as deux contextes séparés.
    Dans ce cas, l'objet document ne fait référence qu'à une seule de ces pages (celle dans laquelle elle est exécuté !).
    Je m'en doutais fortement mais n'avait pas de certitude absolue d'où la multiplicité des identifiants que je vais donc pouvoir réduire.

    Citation Envoyé par kolodz Voir le message
    Il est totalement possible de générer un identifiant aléatoire, pour éviter le problème.
    ça ... ça m'intéresse.

    Citation Envoyé par kolodz Voir le message
    Si tu cherche à mettre à jour un set d'élément, il me semble plus propre d'utiliser une classe "reponse".
    pas indispensable ici.

    Cordialement,

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Pour la génération de random d'un ID, tu dois faire cela dans le langage générant le HTML.

    Pour le PHP, il y a une fonction pour cela :uniqid()

    Pour le Java tu aura la classe Random :
    https://docs.oracle.com/javase/7/doc...il/Random.html

    Pour les autres, une simple recherche google devrait te donner la réponse.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Faire correspondre deux champs d'une table au même identifiant
    Par artenis dans le forum Langage
    Réponses: 1
    Dernier message: 28/09/2011, 15h33
  2. [AC-2003] garder le même identifiant de l'enregistrement en cours
    Par megdi dans le forum IHM
    Réponses: 8
    Dernier message: 28/08/2009, 09h26
  3. Deux objets avec le même identifiant pour une session
    Par nicolas_isi dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/07/2009, 09h11
  4. [Dojo] Plusieurs item aevc même identifier dans Tree
    Par dbdb2719 dans le forum Bibliothèques & Frameworks
    Réponses: 10
    Dernier message: 05/06/2009, 15h57
  5. fusion lignes avec le même identifiant
    Par popoline dans le forum SAS Base
    Réponses: 3
    Dernier message: 27/05/2009, 17h14

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