#1 04-11-2010 08:52:13

John Gindrelli
Simple joueur
Coterie:
Âge: 29
Classe: Voleur
Citoyenneté: Antonien
Voir/Cacher les infos

[Résolu] [Mineur] Affichage des holologs

Quand on clique rapidement sur les [+], seul le dernier hololog s'affiche.
La cause : la variable g_id est globale, donc écrasée lors d'un nouvel appel.

Il faudrait le donner en paramètre à la fonction handleAJAXReturn pour éviter ce souci.

C'est pas à mettre en priorité dans la Todo list, mais ça me passe par la tête, donc je note ici smile

Hors ligne

 

#2 04-11-2010 08:55:37

[Admin] Lunch
Admin - RP/Système de jeu
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

Bah n'hésitez plus à faire vos propres TODO, si vous pouvez apporter des améliorations au jeu.
Vu que le code on est en train de l'ouvrir, vous pourrez tous proposer vos bouts de code à intégrer au jeu.

EDIT : Je précise quand même : "quand c'est pertinent". Inutile de perdre son temps pour implémenter une fonction qui n'a pas été validée par les admins.

Hors ligne

 

#3 04-11-2010 11:28:51

[Admin] Uld
Admin Général
Classe:
Citoyenneté:
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

J'ai pas compris le problème.

Pourquoi vouloir cliquer rapidement ? define "rapidement" ?

Hors ligne

 

#4 04-11-2010 11:31:51

John Gindrelli
Simple joueur
Coterie:
Âge: 29
Classe: Voleur
Citoyenneté: Antonien
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

"Pourquoi vouloir cliquer rapidement"
=> Hum... c'est par habitude en fait, j'ai cliqué sur le second [+] sans attendre que le premier soit ouvert.

"define rapidement"
=> Assez vite pour lancer deux requêtes Ajax en simultané (cf au dessus).

Hors ligne

 

#5 04-11-2010 12:24:47

[Admin] Agô le velu
Admin - Cartographie

Re: [Résolu] [Mineur] Affichage des holologs

ah ouaip ! j'avais remarqué la même chose, parce que j'ai aussi cette habitude de cliquer rapidement sur les + smile

Hors ligne

 

#6 04-11-2010 19:06:41

Kriss
Chien cornu
Avatar de Kriss
Coterie: Les Séneçons de la Rose des Vents.
Âge: Plus jeune qu'on ne le croit.
Classe: Archer Ninja
Citoyenneté: Ville Pacifiste Râleur
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

Quand je compile les soins, j'attends rarement que chaque hololog se déplie de mon côté. Je clique sur tous les holologs et je reviens après sur ceux qui ne se sont pas ouverts. S'ils pouvaient tous se déplier en même temps, ce serait plus mieux.

Dernière modification par Kriss (04-11-2010 19:15:28)


*crisse*
*crisse*
Fondateur du CSFPMFARCUAQSPTSPGLBVPQPS!H! o/

Hors ligne

 

#7 04-11-2010 19:42:40

Subotai
Kiwispider
Avatar de Subotai
Coterie: La Garde Franche
Âge:
Classe: Archer
Citoyenneté: Belerim

Re: [Résolu] [Mineur] Affichage des holologs

[Admin] Uld a écrit:

define "rapidement" ?

Ça dépend beaucoup de la charge du serveur à ce moment-là, mais au pire des pires ça peut aller jusqu'à 10 - 20 secondes entre deux clics.
Dit comme ça, évidemment, ça ne paraît pas particulièrement gênant, mais quand on a une vingtaine d'holologs à lire ça se compte assez vite en minutes.

Dernière modification par Subotai (04-11-2010 19:44:00)


-- Subotai (47), cavalier de la Garde Franche
Pas voleur, mais archer quand même.

Hors ligne

 

#8 04-11-2010 19:59:49

John Gindrelli
Simple joueur
Coterie:
Âge: 29
Classe: Voleur
Citoyenneté: Antonien
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

[Admin] Lunch a écrit:

Bah n'hésitez plus à faire vos propres TODO, si vous pouvez apporter des améliorations au jeu.
Vu que le code on est en train de l'ouvrir, vous pourrez tous proposer vos bouts de code à intégrer au jeu.

Pas encore d'accès SVN, mais pour la modif à laquelle je pensais, c'est ça :

function handleAJAXReturn(g_id) {
    return function() {
        if (http.readyState == 4) {
            if (http.status == 200) {
                var m = "mess" + g_id;
                document.getElementById(m).innerHTML = http.responseText;
                Effect.toggle(m, "slide");
            } else {
                alert("Il y a un problème momentané sur le serveur.\nRéessayez plus tard.");
            }
        }
    }
}

Du coup, lors de la requête Ajax, ça devient :

function aff(id, req, env) {
    if (document.getElementById("mess" + id).innerHTML == "") {
        g_id = id;
        http = createRequestObject();
        http.open("POST", "ajax/ajax_messagerie.php?afficher=" + id + "&envoye=" + env, true);
        http.onreadystatechange = handleAJAXReturn(id);
        http.send(null);
        if (req == 1) {
            lu(id);
        }
    } else {
        Effect.toggle("mess" + id, "slide");
    }
}

En bleu ce que j'ajoute, en rouge/barré ce que je supprime, je n'ai fait aucune autre modification.

Dernière modification par John Gindrelli (04-11-2010 20:02:06)

Hors ligne

 

#9 05-11-2010 00:48:30

Guigolum
Gorille
Avatar de Guigolum

Re: [Résolu] [Mineur] Affichage des holologs

pourquoi pas plutôt récupérer l'id du message dans la chaine retournée en ajax?

le mien est du genre  :
http://www.arkhan.org/ajax/ajax_message … p;envoye=0 =>
"<p class="detail">Destinataire(s):
                            <b><span id="dest_670236">Guigolum</span></b></p>
                            <p class="message" id="id_670236">Vous venez de r&eacute;cup&eacute;rer 2 PV</p>
"
donc on peut le faire de manière crade avec un
var message_id=http.responseText.replace('.*class="message" id="id_(.*)".*','$1')
(testé avec http://www.regular-expressions.info/jav … ample.html )

ou de manière plus propre avec du XPath, je pense.

Hors ligne

 

#10 05-11-2010 08:49:04

John Gindrelli
Simple joueur
Coterie:
Âge: 29
Classe: Voleur
Citoyenneté: Antonien
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

Guigolum a écrit:

pourquoi pas plutôt récupérer l'id du message dans la chaine retournée en ajax?
[...]
ou de manière plus propre avec du XPath, je pense.

Parce qu'en général, on aime bien faire simple... roll
Pourquoi s'embêter à jouer avec la chaine de caractères retournée alors qu'on a déjà l'ID dans une variable ?

---
edit : D'ailleurs, dans ta regex, j'aurais mis (\d+) plutôt que (.*), et puis en général, je préfère "match" à "replace" pour récupérer des valeurs... ^^
---
edit 2 : Autre raison, s'il y a une erreur coté PHP, ma version affichera le message d'erreur au lieu du message, la tienne fera planter le script wink

Dernière modification par John Gindrelli (05-11-2010 11:52:08)

Hors ligne

 

#11 05-11-2010 12:41:21

Guigolum
Gorille
Avatar de Guigolum

Re: [Résolu] [Mineur] Affichage des holologs

Effectivement.

Hors ligne

 

#12 15-02-2011 20:14:06

[Admin] Lunch
Admin - RP/Système de jeu
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

Patch validé.
Normalement, ça devrait maintenant fonctionner.

Bon jeu !

Hors ligne

 

#13 15-02-2011 22:15:15

John Gindrelli
Simple joueur
Coterie:
Âge: 29
Classe: Voleur
Citoyenneté: Antonien
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

J'ai testé, ça fonctionne big_smile

On peut enfin cliquer frénétiquement sur les [+] et juste attendre que tout s'ouvre smile

Hors ligne

 

#14 15-02-2011 23:48:02

[Admin] Agô le velu
Admin - Cartographie

Re: [Résolu] [Mineur] Affichage des holologs

cool ! ça faisait un moment que je pestais contre la perte de temps énorme à tout ouvrir un par un avec le délai d'attente. Merci Marmotte !

Dernière modification par [Admin] Agô le velu (15-02-2011 23:48:24)

Hors ligne

 

#15 16-02-2011 00:08:58

[Admin] Lunch
Admin - RP/Système de jeu
Voir/Cacher les infos

Re: [Résolu] [Mineur] Affichage des holologs

Trop fort ce Marmotte smile

Hors ligne

 

Pied de page des forums

Retour sur le jeu Arkhan